iis 7 停止侦听器通道

iis 7 停止侦听器通道

对于任何需要 7-10 分钟以上才能完成的页面,我在 iis 7 中遇到了以下错误:

为应用程序池“xxxxxx”提供服务的工作进程“xxxx”未能在规定时间内停止协议“http”的侦听器通道。

为什么 iis 会停止侦听器通道?我该如何增加分配的时间?我应该这样做吗?或者这是否表明存在其他问题?

答案1

IIS 定期 (默认情况下,每 30 秒) ping 工作进程,以确保它仍然响应。您的工作进程可能太忙而无法响应 ping,因此 IIS 会尝试终止它。当 IIS 尝试终止该进程时,它会失败,因为该进程仍然挂在内存区域上。

进入 IIS,单击“应用程序池”,然后右键单击您的应用程序池并选择“高级设置”。在“进程模型”标题下,选择“启用 Ping”旁边的“False”,看看是否能解决问题。另一个选项是增加 Ping 最大响应时间。

IIS7 应用程序池高级设置图片

至于这是否预示着更大的问题,我会说是的,确实如此。这种类型的代码似乎不适合同步执行。您可能需要考虑将任务传递给将执行异步回调的 Windows 服务,或者研究 IIS 的异步模型 (System.Threading)。如何做到这一点可能是 stackoverflow 的一个更好的问题。

相关内容