Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何确定64位服务器上IIS崩溃的原因_Asp.net_Iis_Iis 6_Crash_Crash Dumps - Fatal编程技术网

Asp.net 如何确定64位服务器上IIS崩溃的原因

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

我有一个.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–记录异常
第一条路,这就是我的路 可能会推荐,就是创造 要记录的未处理ExceptionHandler 异常及其堆栈 事件日志中的跟踪,如中所示 本文 将这样的处理程序添加到 web.config:

<system.web>
  <httpModules>
    <add type="WebMonitor.UnhandledExceptionModule, <strong name>"
       name="UnhandledExceptionModule"/>
  </httpModules>
      …
</system.web>   
它将eventhandler挂接到 的未处理异常事件 当前应用程序域。你不知道 实际上需要对它进行强命名并 但是,如果您计划将其添加到GAC中 它可以在多个应用程序中运行,您应该 要避免加载dll的错误,请执行以下操作: 多次。现在下一次 你有一个没有处理的吗 例外情况下,该过程仍将继续 退出(除非更改未处理的 例外政策),但您有一个 很有可能解决这个问题


您可以设置性能计数器来监视CPU、内存和.NET特定计数器等。有很多细节,但这篇TechNet文章可能会有所帮助:

ASP.NET本身有一个用于监视应用程序运行状况的完整命名空间。您可以创建自己的事件,或者最常见的是,为默认事件配置应用程序。这篇MSDN文章有更多内容:


如果问题是应用程序代码,例如未处理的异常(尽管如果这是您的问题,我希望在Windows事件日志中看到更多详细信息),您可以使用工具捕获并报告这些异常。是我过去用过的一个很好的工具。它被描述为,并且有多种方式提供异常的详细信息,并帮助跟踪错误。

微软将完成这一任务。它将提供IIS内存转储和分析。

很好的发现,我现在正在尝试。这篇文章对我来说并不直接有效,但它是正确的答案。因为这影响了一个生产系统,我打开了微软的支持票。他们首先向我指出了这篇文章,然后向我提供了一个调试工具来帮助我找到实际问题。问题是一个无休止的递归循环,因为嵌套数据很差。