在生产服务器上,当ASP .NET应用程序崩溃时,我可以从系统事件查看器中看到此事件:
EventType clr20r3,P1 w3wp.exe,P2 6.0.3790.3959,P3 45d691cc,
P4 app_web_default.aspx.cdcab7d2,P5 0.0.0.0,P6 4b2e4bf0,P7 4,P8 4,P9
system.dividebyzeroexception,P10 NIL。*
它属于“.NET Runtime 2.0错误报告”类别。
但我找不到属于“ASP.NET 2.0.50727.0”类别的事件,它可以给我这个例外这样的详细视图:
An unhandled exception occurred and the process was terminated.
Application ID: /LM/W3SVC/505951206/Root
Process ID: 1112
Exception: System.DivideByZeroException
Message: Attempted to divide by zero.
StackTrace:
at _Default.Foo(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp
我的dev机器上有第二个事件,是因为Visual Studio安装在那里?如果是这样,我如何禁用它以便我可以模拟生产环境?
答案 0 :(得分:36)
有时您可能会在Windows事件日志中看到这个可怕的错误:
EventType clr20r3,P1 w3wp.exe,P2 6.0.3790.3959,P3 45d6968e,P4 dp.ui,P5 3.9.7.55,P6 4b49a307,P7 62e,P8 0,P9 system.stackoverflowexception,P10 NIL。
你可以看到它不清楚并且没有堆栈跟踪,你不知道P1,...,P10和任何数字。你知道哪个是最糟糕的部分;如果它不在日志中,唯一让你不要睡觉并让你希望的东西,是的! “dp.ui”消息。
好的,除了所有的笑话和愿望之外,当发生无限循环或方法调用时会引发异常“system.stackoverflowexception”,所以你应该检查所有源的任何递归方法调用,你可以启动Visual Studi来调试那。但即使您的应用程序不是企业,它也不可能并且始终可行。所以你必须谷歌为P1,...,P10。我做了而不是你,所以只是高枕无忧!
P1 :发生此错误的应用程序名称
P2 :应用版本
P3 :申请时间戳
P4 :装配/模块名称
P5 :装配/模块版本
P6 :装配/模块时间戳
P7 :MethodDef
P8 :IL偏移
P9 :异常名称(由于名称太长而散列)
很明显,我们需要找到P7,P8。 IL Disassembler是Visual Studio中的一个工具,它将帮助我们做到这一点。
06000
与62e
的组合,您将看到该类的MethodName,通过查找,您将看到第一个声明该类的TypeDef。这就是全部!当你转到你的应用程序时,你可能会看到一个递归调用,你应该检查使这个循环退出的条件!
在Windows和服务应用程序中,此异常可能如下所示,您应该通过“IL Disassembler”检查“sib.infobase.workflow.services.exe”:
EventType clr20r3,P1 sib.infobase.workflow.services,P2 1.0.2740.20114,P3 468a74f5,P4 sbpscs,P5 1.0.2740.20087,P6 468a74be,P7 1c,P8 120,P9 zxkyzcs5wacordmkttdkr1xouosi00fr,P10 NIL。
如果您在网上冲浪,您可能会看到像Microsoft这样的解决方案: http://support.microsoft.com/kb/911816,但可能无法正常处理此异常。