4

我们的服务器运行的是 Windows Server 2003。我们已经在 IIS 中更新了我们网站的 .Net 版本以使用 4.0。随机时间,每周 1-2 次,因为更改发生,触发快速失败,站点因 503 错误而被关闭。

应用程序日志显示了一系列触发快速失败触发器的错误。每组有两个错误,最多 10 个快速失败触发器。错误是:

上午 1:27:21
.NET 运行时 4.0 错误
EventType clr20r3、P1 w3wp.exe、P2 6.0.3790.3959、P3 45d6968e、P4 app_code.xqrjkjyl、P5 0.0.0.0、P6 51345a6b、P7 252、P8 0、P9 system.stackoverflowexception , P10 无。

上午 1:27:11
.NET 运行时
应用程序:w3wp.exe
框架版本:v4.0.30319
描述:该进程因堆栈溢出而终止。

请注意,4.0 错误出现在未命名的 .Net 错误之后 10 秒。我相信未指定的 .net 版本错误是针对我们从旧的 2.0 框架迁移而来的。

在 IIS6 中,处理程序设置为使用 4.0。我们在主站点下也有几个应用程序池。所有这些的 web.config 文件都指定 4.0 作为要使用的框架:

<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<!--<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>-->
</assemblies>
4

1 回答 1

1

您可以尝试使用 iisstate( http://www.iisfaq.com/?View=P197 ) 或 iis 调试诊断 ( http://blogs.msdn.com/ b/tess/archive/2008/05/21/debugdiag-1-1-or-windbg-which-one-should-i-use-and-how-do-i-gather-memory-dumps.aspx)。

使用转储,您可以分析它 (Windbg) 并了解它引发此异常的位置。

还可以看看这个Getting IIS Worker Process Crash dumps

干杯

于 2013-04-08T20:19:36.780 回答