ASP.NET MVC应用程序是否在AccessViolationException上自动重新启动

本文关键字:重新启动 AccessViolationException NET MVC 应用程序 是否 ASP | 更新日期: 2023-09-27 18:25:03

我正在使用C#为.NET 4.5.1开发MVC web应用程序,并且我正在使用一个外部dll库。这个库似乎偶尔会抛出AccessViolationException。

我试图用捕捉异常

[HandleProcessCorruptedStateExceptions]

属性并使用重新启动应用程序

HttpRuntime.UnloadAppDomain();

内侧挡块。这在一定程度上起作用,但有时这种异常会绕过try块并崩溃。

IIS是否处理崩溃并通过重新启动自动从此异常中恢复应用程序,或者我需要做些什么?

ASP.NET MVC应用程序是否在AccessViolationException上自动重新启动

未检查的异常通常不会导致应用程序域卸载或应用程序池循环。如果你得到了未检查的异常,你可以考虑使用ELMAH来捕获和记录异常,这样你就可以从一开始就了解它们发生的原因。

让你的appdomain定期卸载以"处理异常"是一件非常可怕的事情,我建议你首先要弄清楚为什么会发生异常。

"IIS是否处理崩溃并通过重新启动自动从该异常中恢复应用程序,或者我需要做些什么?"

你应该始终避免崩溃,以维护用户体验,避免你的应用程序被黑客入侵。@cobolsthos-Elmah的建议只会在可用的情况下提供stackrace,这没有帮助。

AccessViolationException与非托管代码相关联,并且您的第三方库似乎是问题的根源,但是您需要在服务器上附加调试器来监视此问题,并在发生此问题时捕获转储。

您应该在服务器上安装DebugDiag并完成故障挂起分析报告。

请确保获得最新版本:http://www.microsoft.com/en-gb/download/details.aspx?id=42933

这将在崩溃发生时提供一份报告,并让您比Elmah更深入地了解您的问题。