【问题标题】:iis7 application pool hangingiis7 应用程序池挂起
【发布时间】:2012-08-31 05:44:33
【问题描述】:

我有一个 .net 4.0 网站,它在 IIS6 32 位的物理 Windows 服务器 2003 机器上运行得很好。我们已迁移到运行 Windows Server 2008 32 位和 IIS7 的新虚拟服务器。应用程序池以经典模式运行。

自从搬家后,我随机得到一个应用程序挂起的情况。请求队列火箭,然后我得到 503 错误。如果应用程序池被回收,那么错误就会消失,直到下一次发生。

事件日志中没有与之相关的条目,只是它记录了应用程序池在回收过程中何时关闭。我在我的 .net 应用程序中进行了报告,该应用程序记录到数据库并向我发送错误,但是当此应用程序挂起时它什么也没给我。

我可以使用哪些工具来诊断问题并找出导致问题的原因?

【问题讨论】:

    标签: iis-7 pool


    【解决方案1】:

    认为,无论应用程序的结构是什么,如果您非常确定没有错误,更改应用程序池上的属性类型可能会解决问题。

    首先在应用程序池的“高级设置...”菜单上将“启用 32 位应用程序”更改为相关值。如果用于构建应用程序的平台是 x86,则该值应为“True”。

    其次,如果您的应用程序需要访问磁盘资源,您还应该在“身份”属性中提供运行应用程序池的相关安全上下文。该身份应访问您的应用程序想要更改或列出的所有目录。

    做完所有事情后,如果问题存在,你应该让我知道你的应用程序的平台。是 .NET 还是 ISAPI?

    干杯

    【讨论】:

    • 我检查了,权限似乎是正确的。它只需要访问临时文件夹和网络共享。它可以访问网络共享,并且是可以访问临时文件夹的 IIS_Users 的成员。我想知道它是否是一些在 Server 2008 上不起作用但在 Server2003 上起作用的 com 组件。我无法进行您建议的其他设置更改,因为机器是 32 位的,因此没有为我提供这些选项
    • 如果您的应用程序使用的是 ASP.NET,我建议您将所有 Application_Start 内容注释并重新发布。如果它有效,则意味着此事件中的某些内容可能是错误的。正如我所说,COM访问也需要相关的身份。您可以暂时将 Identity 属性设置为 LocalSystem 并检查应用程序是否启动。如果它启动了,你一定有一些安全问题。
    • 应用程序在随机的时间内启动并正常运行,并且某些我无法识别的操作使其挂起。
    • 您应该在应用程序源代码上放置一些跟踪条件,然后查看它们以找出中断在哪里。顺便说一句,您的应用程序可能依赖于许多配置。所以肯定的方式就是源头的方式!祝你好运。
    猜你喜欢
    • 2010-09-17
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2011-01-05
    • 2011-11-28
    相关资源
    最近更新 更多