503 - 服务器不可用 - .Net 2.0和4.0冲突

4
我们的服务器正在运行Windows Server 2003。我们已经更新了IIS中网站的.Net版本,使用的是4.0。自从更改后,每周随机时间会触发快速失败,导致网站崩溃并显示503错误。
应用程序日志显示一系列错误,这些错误会触发快速失败。每组错误都有两个,最多达到10个快速失败触发器。错误如下:
1:27:21 AM .NET Runtime 4.0 Error 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 NIL.
1:27:11 AM .NET Runtime Application: w3wp.exe Framework Version: v4.0.30319 Description: The process was terminated due to stack overflow.
请注意,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>

为什么要引用System.SecuritySystem.Design的2.0版本? - Joachim Isaksson
1
你有没有想法是什么导致了堆栈溢出 - 你能够隔离导致问题的代码并进行重构吗?我认为可能是某些资源限制从2变成了4,而发生的任何事情都会达到较小的4.0限制。这只是纯粹的猜测,但值得看看导致问题的代码,并从那里向后工作。 - Luke Baughan
感谢回复。我不确定为什么要使用2.0版本的system.design和system.security。关于较低的4.0限制,我唯一能想到的是像我们的文件上传功能的maxrequest length之类的项目,但那在metabase中,我不认为与此有关。是否有另一个地方可以配置.net的详细信息? - superfreaker
你真的需要找出代码中引起异常的位置。尝试将事件日志与IIS日志进行关联。 - anon
你还应该检查apppool的运行时。它与在web.config中指定的框架版本无关。 - Eric Falsken
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接