【问题标题】:IIS errors since upgrading to dot net 4升级到 dot net 4 后的 IIS 错误
【发布时间】:2011-06-22 18:30:44
【问题描述】:

早在 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 日志,但这并没有提供任何有关问题的线索。是否有可用的工具可以为我们提供有关导致错误的应用程序以及当时发生的情况的更多信息?

【问题讨论】:

    标签: asp.net iis-6 application-pool


    【解决方案1】:

    here 的讨论可能对你也有帮助:

    您可以将应用程序池配置为孤立工作进程而不是在这种情况发生时将其杀死 - 然后您可以使用adplus 收集工作进程的挂起转储,可以分析该转储以找出进程中的内容陷入僵局。

    (...)

    这意味着 asp.net 线程已经很长时间没有从他们正在执行的任何活动中返回,并且 asp.net 已经用完了线程 - 这通常表示死锁。此kb 还讨论了如何生成转储以针对这种情况进行分析。

    【讨论】:

      【解决方案2】:

      我遇到了完全相同的错误,这是由于我的 .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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-17
        相关资源
        最近更新 更多