【问题标题】:What happens if an IIS application worker process hangs?如果 IIS 应用程序工作进程挂起会怎样?
【发布时间】:2019-09-14 22:41:06
【问题描述】:

我是 Web 编程的新手……现在我正在开发一个已经实现的 ASP.NET MVC 应用程序,该应用程序部署在 IIS 中。此应用程序绑定到只有一个工作进程的应用程序池。此刻,我试图了解如果工作进程由于应用程序代码引发的不受控制的异常而冻结/挂起会发生什么。那么有人可以解释一下吗?

我们观察到,当这种情况发生时,应用程序停止正常工作,我们需要重新启动其应用程序池,以便应用程序再次开始正常工作。观察到这种行为后,我有一个疑问......在应用程序池高级配置中,在进程模型下,据我所知,当应用程序池 ping 工作进程时,ping 最大响应时间(秒)设置为 90它没有响应,因为它挂起,90 秒后工作进程应该终止,但它似乎没有终止,因为当这种情况发生时,我们需要重新启动应用程序池才能让应用程序再次工作......所以为什么在这个案例工作者进程不会终止?

【问题讨论】:

    标签: asp.net-mvc iis iis-8 application-pool iis-8.5


    【解决方案1】:

    首先,您“只有”一个工作进程,并且可能应该保持这种状态。很多时候,Web Gardening 导致的问题多于它的帮助,尤其是对于 .NET 应用程序。其次,您说它由于应用程序代码引发的“不受控制”(未处理?)异常而冻结/挂起。为什么你认为会这样。您是否有错误页面或指示其异常的内容? “ping”进程检查进程是否仍在工作,但不一定完成请求。所以从WAS的角度来看,IIS还是有响应的。

    如果您想进行故障排除,您可以调查使用 DebugDiag 获取内存转储并对其执行一些自动分析。 https://support.microsoft.com/en-us/help/919792/how-to-use-the-debug-diagnostics-tool-to-troubleshoot-a-process-that-h

    【讨论】:

    • 我知道应用程序会导致未处理的异常,因为正在注册 Windows 事件查看器。
    • 如果您怀疑这些异常是挂起的一部分,您可以发布它们。
    猜你喜欢
    • 2011-02-01
    • 2021-04-22
    • 2013-11-12
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多