Asp.net 如何确定64位服务器上IIS崩溃的原因
我有一个.net 2.0 web应用程序,它运行在Windows server 2003标准x64上,使用IIS 6 我们网站的应用程序池最近开始崩溃,我无法确定原因。这是在一个周末开始的,网站的最新版本是在几天前发布的。我已确定最近没有对服务器进行任何其他更改,包括代码和Microsoft更新 每当数据块中没有其他信息时,事件日志会显示以下内容: 出现故障的应用程序w3wp.exe,版本 6.0.3790.3959,戳记45D691C,故障模块内核32.dll,版本 5.2.3790.4062,盖章462643a7,调试?0,故障地址0x0000000000027d8d 这是在x64服务器上运行的,因此我不能使用任何标准的调试诊断工具,因为即使有64位版本,它也只会连接到以32位模式运行的IIS 我尝试过使用Windows(x64)的调试工具,能够连接到w3wp进程,并等待另一次崩溃。但是,这会使服务器速度降低到无法使用的程度,因此我不得不停止它 我还可以使用哪些其他方法来确定IIS崩溃的原因?阅读 策略#1–记录异常Asp.net 如何确定64位服务器上IIS崩溃的原因,asp.net,iis,iis-6,crash,crash-dumps,Asp.net,Iis,Iis 6,Crash,Crash Dumps,我有一个.net 2.0 web应用程序,它运行在Windows server 2003标准x64上,使用IIS 6 我们网站的应用程序池最近开始崩溃,我无法确定原因。这是在一个周末开始的,网站的最新版本是在几天前发布的。我已确定最近没有对服务器进行任何其他更改,包括代码和Microsoft更新 每当数据块中没有其他信息时,事件日志会显示以下内容: 出现故障的应用程序w3wp.exe,版本 6.0.3790.3959,戳记45D691C,故障模块内核32.dll,版本 5.2.3790.4062
第一条路,这就是我的路 可能会推荐,就是创造 要记录的未处理ExceptionHandler 异常及其堆栈 事件日志中的跟踪,如中所示 本文 将这样的处理程序添加到 web.config:
<system.web>
<httpModules>
<add type="WebMonitor.UnhandledExceptionModule, <strong name>"
name="UnhandledExceptionModule"/>
</httpModules>
…
</system.web>
…
它将eventhandler挂接到
的未处理异常事件
当前应用程序域。你不知道
实际上需要对它进行强命名并
但是,如果您计划将其添加到GAC中
它可以在多个应用程序中运行,您应该
要避免加载dll的错误,请执行以下操作:
多次。现在下一次
你有一个没有处理的吗
例外情况下,该过程仍将继续
退出(除非更改未处理的
例外政策),但您有一个
很有可能解决这个问题
您可以设置性能计数器来监视CPU、内存和.NET特定计数器等。有很多细节,但这篇TechNet文章可能会有所帮助:
如果问题是应用程序代码,例如未处理的异常(尽管如果这是您的问题,我希望在Windows事件日志中看到更多详细信息),您可以使用工具捕获并报告这些异常。是我过去用过的一个很好的工具。它被描述为,并且有多种方式提供异常的详细信息,并帮助跟踪错误。微软将完成这一任务。它将提供IIS内存转储和分析。很好的发现,我现在正在尝试。这篇文章对我来说并不直接有效,但它是正确的答案。因为这影响了一个生产系统,我打开了微软的支持票。他们首先向我指出了这篇文章,然后向我提供了一个调试工具来帮助我找到实际问题。问题是一个无休止的递归循环,因为嵌套数据很差。