您的位置:首页 > 编程语言

用一行代码让w3wp进程崩溃,如何查找w3wp进程崩溃的原因

2009-12-19 20:54 411 查看
W3wp进程崩溃了,在系统日志中留下了一个错误,而留下的错误信息却很少,如何才能快速查找w3wp崩溃的原因呢?

首先,我们来写一行代码让w3wp崩溃:

private string _shutDownMessage;
private string _shutDownStack;

他们记录了w3wp进程的退出消息和退出堆栈,通常我们在Application_End事件中记录这两个变量的值,就可以看到崩溃的堆栈。具体怎么做请看代码

以上代码主要使用了反射,本文不做详细解释。

上面的这种方法通常情况可以得到w3wp崩溃的调用堆栈,我们还有另一种方法来获得。利用AppDomain.CurrentDomain.UnhandledException 事件来记录未处理异常的发生原因,代码也很简单:

protected void Application_Start(object sender, EventArgs e)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}

void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
Exception ex = e.ExceptionObject as Exception;
string msg = ex.Message;
string stack = ex.StackTrace;
}

以上代码的是在Application Start的时候给AppDomain的UnhandleException时间加处理方法,来记录未处理异常的发生原因。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: