升级到 dot net 4 后出现 IIS 错误

发布于 2024-10-16 19:01:23 字数 520 浏览 8 评论 0原文

早在 10 月份,我们就将其中一个站点(在 IIS 6 上)从 .net 3.5 升级到 .net 4.0。从那时起,我们几乎每天都会收到以下警告和错误:

警告:

ISAPI 'c:\windows\microsoft.net\framework\v4.0.30319\aspnet_isapi.dll' 报告自己不健康 以下原因:“检测到死锁”。

错误:

不可能同时运行两个 不同版本的 ASP.NET 相同的 IIS 进程。请使用IIS 用于重新配置的管理工具 您的服务器来运行应用程序 一个单独的过程。

我们检查了所有应用程序,并确保它们在正确版本的 ASP.NET 上运行,并且也在它们自己的单独应用程序池中运行。

我们查看了记录错误时的 IIS 日志,但这并没有提供有关该问题的任何线索。是否有可用的工具可以为我们提供有关哪个应用程序导致错误以及当时发生了什么的更多信息?

Back in October we upgraded one of our sites (on IIS 6) from .net 3.5 to .net 4.0. Since then we have been getting the following warning and error pretty much everyday:

Warning:

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

Error:

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.

We have checked all applications and ensured that they are running on the correct versions of ASP.NET and also in their own separate app pools.

We have looked at the IIS logs at the time the errors are recorded but this doesn't give any clues as to the issue. Is there a tool available that could give us more information as as to which application is causing the errors and what was happening at the time?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

过去的过去 2024-10-23 19:01:23

此处的讨论可能对您也有帮助:

您可以将应用程序池配置为孤立工作进程,而不是在发生这种情况时终止它 - 然后您可以使用 adplus 收集工作进程的挂起转储,可以对其进行分析以找出进程中的死锁部分。

(...)

这意味着 asp.net 线程在很长一段时间内没有从它们正在执行的任何活动中返回,并且 asp.net 已经耗尽了线程 - 这通常表明死锁。此知识库还讨论了如何生成转储以分析这种情况。

The discussion here might be helpfull for you as well:

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.

茶色山野 2024-10-23 19:01:23

我遇到了完全相同的错误,这是由于我的 .NET 4.0 应用程序引用的 .NET 2.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

I had the exact same error, and it was due to a .NET 2.0 custom error page that my .NET 4.0 app was referring to.

I had set up a custom error page that was developed in .NET 2.0 and it was applied at the top level of the IIS web site.

The .NET 4.0 application was using a unique MVC URL routing scheme, and for some reason just that application kept locking up and eventually those deadlock errors would come up.

I got rid of the custom error page setting which pointed to the .NET 2.0 web page and switched it back to the default "Not Found" static error. I restarted the application pool and the web page started working without issue.

Hope this helps someone else out there.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文