ASP.NET调试与IIS一起计时

时间:2010-04-29 23:39:44

标签: asp.net debugging iis

终于崩溃并寻求帮助,我的客户/ iis(不确定哪个)通常会在大约30秒-1分钟后超时我调试(踩代码)这不仅导致我失去了我的位置而且必须重新开始(通常步进更快,犯更多错误)但IIS调试会话完全关闭,我必须再次热身整个会话。

从调试会话中获得更多时间的最佳方法是什么?

在IIS 7.5 Classic Pipeline上调试vanilla 3.5 Web 站点(不是应用程序)

3 个答案:

答案 0 :(得分:36)

如果将连接限制设置得足够高,则设置连接限制。我想再也不会被这个打扰了。 Here就是我所做的:

这假设您已在IIS管理器中选择了IIS应用程序池

  

...在“高级设置”对话框中,找到“处理模型”部分,然后执行以下操作之一:

     
      
  1. 将Ping设置为False。
  2.   
  3. 将Ping最大响应时间设置为大于90秒的值。
  4.         

    将Ping Enabled设置为False会阻止IIS检查工作进程是否仍在运行,并在您停止调试进程之前保持工作进程处于活动状态。将Ping最大响应时间设置为较大值允许IIS继续监视工作进程。

答案 1 :(得分:5)

您应该暂时更改web.config中的httpRuntime executionTimeout属性,而不是更改IIS中的应用程序池设置。默认值为110秒,这通常是充足的时间,但如果您正在调试则不会。增加超时将允许对服务器的请求运行更长时间。

<system.web>
   <httpRuntime executionTimeout="360" />
</system.web>

将其设置为6分钟(360秒)。

完成调试后,您可以删除该属性,IIS将恢复为默认值。

答案 2 :(得分:2)

请注意,如果您使用的是ScriptManager(例如,更新面板),它会使用自己设置的超时时间:

<asp:ScriptManager ID="ScriptManager1" AsyncPostBackTimeout="???" ...
</asp:ScriptManager>

我建议您仅在调试时将其设置为高值。您可以在存在scriptmanager控件的页面的pageload事件中执行此操作:

If Debugger.IsAttached Then
    ScriptManager1.AsyncPostBackTimeout = 600
End If