我是Web编程的新手...现在,我正在研究已实现的ASP.NET MVC应用程序,该应用程序已部署在IIS中。此应用程序绑定到只有一个工作进程的应用程序池。目前,我试图了解如果工作进程由于应用程序代码引发的不受控制的异常而冻结/挂起,将会发生什么情况。有人可以解释一下吗?
我们观察到的是,当这种情况发生时,应用程序将停止正常运行,并且我们需要重新启动其应用程序池才能使应用程序再次正常运行。观察到此行为后,我感到怀疑.....据我所知,在应用程序池高级配置中,在进程模型下,ping最大响应时间(秒)设置为90,当应用程序池对工作进程进行ping时并且它没有响应,因为它挂起了,在90秒后应该终止工作进程,但是似乎没有终止,因为发生这种情况时,我们需要重新启动应用程序池才能使应用程序再次工作。案例工作者进程不会终止?
答案 0 :(得分:0)
首先,您“只有”一个工作进程,应该将其保持这种状态。通常情况下,Web Gardening导致的问题多于其所能解决的问题,尤其是.NET Apps。其次,您说它由于应用程序代码引发的“不受控制”(未处理?)异常而冻结/挂起。您为什么认为是这种情况。您是否有一个错误页面或表明其异常的内容? “ 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