在ASP.NET MVC 4 C#中发生StackOverflowException之前,我正在尝试对我的应用程序执行某些操作。我知道当发生StackOverflowException时,应用程序被操作系统杀死(在这种情况下它会杀死IIS)。我的问题是,有没有办法捕获该异常,以便在崩溃之前生成日志?我尝试使用HandleProcesCorruptedStateExceptions但它不起作用。这是一个应该实现的示例代码。
[HandleProcessCorruptedStateExceptions]
[SecurityCritical]
public ActionResult StackOverflow()
{
try
{
Self("test");
return View();
}
catch (System.StackOverflowException ex)
{
//log
Console.WriteLine(ex.ToString());
// try to do something to prevent application from crashing
throw;
}
}
[HandleProcessCorruptedStateExceptions]
[SecurityCritical]
private string Self(string value)
{
try
{
return Self(value);
}
catch (System.StackOverflowException ex)
{
// log
Console.WriteLine(ex.ToString());
// try to do something to prevent application from crashing
throw;
}
}