最近使用Visual Studio在调试web站点的过程中,出于某种原因(如跟综某一对象的值,或思考问题),可能会在断点处停留一段时间,然而,当超过特定时间后,我发现IIS中止了我的调试,而我想做的工作还没有进行完毕。
一开始,我认为这是IIS连接超时,于是在站点下找到连接时间,将其从默认的120秒设置成1秒,F5运行至断点,等待,仍时长时间停留后才终断。
看来这和IIS设置的站点连接时间无关。
网上搜了一下未果,后来干脆直接进错误对话框中的帮助,通过MSDN找到了问题的原因及解决方法。
错误:网站辅助进程已被 IIS 终止
错误描述:调试器已停止对网站执行代码。这导致 Internet 信息服务 (IIS) 认为辅助进程已停止响应。因此,ISS 终止了辅助进程。若要继续调试,必须配置 IIS 以使辅助进程继续运行。
解决方案:
-
单击“开始”,然后选择“控制面板”。
-
在控制面板中,选择“切换到经典视图”,如果有必要,再双击“管理工具”。
-
在“管理工具”窗口中双击“Internet 信息服务(IIS)管理器”。
-
在“Internet 信息服务(IIS)管理器”窗口中展开 <计算机名称> 节点。
-
在 <计算机名称> 节点之下右击“应用程序池”。
-
在“应用程序池”列表中右击您的应用程序在其中运行的池的名称,再单击“高级设置”。
-
在“高级设置”对话框中,找到“进程模型”部分并选择下列操作之一:
-
将“启用 Ping”设置为“False”。
- 或 -
-
将“Ping 最大响应时间”设置为一个大于 90 秒的值。
将“启用 Ping”设置为“False”可使 IIS 停止检查辅助进程是否仍在运行,并在您停止被调试进程前让辅助进程一直运行。将“Ping 最大响应时间”设置为较大的值可使 IIS 继续监视辅助进程。
-
-
单击“确定”。
原理:特抓下图,红框内为原理,了解下面的原理以后,就很容易理解了。另外,我的开发环境是windows server 2008(IIS7) + vs2008