2011-02-07 73 views
6

早在十月份,我们将其中一个站点(在IIS 6上)从.net 3.5升级到.net 4.0。从那时起,我们一直在日常生活几乎得到以下警告和错误:自升级到dot net以来的IIS错误4

警告:

ISAPI 'c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'.

错误:

It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process.

我们已经检查了所有的应用程序,并确保它们在运行正确版本的ASP.NET以及他们自己的独立应用程序池。

我们已经看了IIS日志的记录在错误的时间,但并不给出任何线索的问题。是否有可用的工具可以为我们提供更多的信息,以了解哪些应用程序导致错误以及当时发生了什么?

回答

1

讨论here可能是有益的你还有:

You can configure the application pool to orphan the worker process rather than kill it when this condition happens - you can then use adplus to collect a hang dump of the worker process which can be analyzed to figure out what in the process is deadlocked.

(...)

It means that the asp.net thrads have not returned from whatever activity they were doing for a very long time and asp.net has run out of threads - this would normally indicate deadlock. This kb also talks about how to generate dumps for analysis for this condition.

0

我有完全相同的错误,这是由于.NET 2.0我的.NET 4.0应用程序所指的自定义错误页面。

我已经建立了一个被开发.NET 2.0中自定义错误页,它是在IIS网站的顶级应用。

的.NET 4.0应用程序是使用一种独特的MVC的URL路由方案,出于某种原因,只是不停地应用锁定了最终的死锁错误会来。

我摆脱它指出,.NET 2.0的网页和切换回默认的自定义错误页设置“未找到”静差。我重新启动了应用程序池,网页开始正常工作。

希望这可以帮助别人。

http://adamantinewolverine.blogspot.kr/2012/10/running-iis6-in-32-bit-mode-on-64bit.html