在Windows 2003服务器上,我有一个纯.NET 3.5 C#
应用程序(没有非托管代码).它通过套接字连接到各种其他远程系统,并像数据中心一样工作.它可以运行10-15小时,没有任何问题,但有时它会消失.如果我使用任务管理器观看应用程序,则内存使用量保持不变.
在Main()
函数中,我将应用程序其余部分的调用包装在一个try .. catch
完全超出的块中 - 将异常记录到文件中的catch块被忽略.如果我手动引发异常以进行测试,则会调用catch块.
在进入之前try .. catch
我做了:
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
系统上有Dr. Watson,但目录中没有任何内容写入DRWTSN32.EXE
指向.
如何捕获导致此异常的异常?
尝试使用microsoft的调试工具.你可以从这里下载它们.
使用adplus捕获崩溃,然后使用windbg进行分析.
adplus -crash -pn your.exe -quiet
关于在这个博客上的Windows调试的很多很好的信息.