如果 IIS 应用程序工作进程挂起,会发生什么情况?



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

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

首先,您"只有"一个工作进程,并且可能应该保持这种状态。 通常,Web 园艺会导致更多的问题而不是帮助,尤其是对于 .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

最新更新