2010-04-29 68 views
28

最后分手和寻求帮助,我的客户端/ iis(不知道哪个)通常超过约30s - 1分钟时,即时调试(通过代码步进),这不仅导致我失去我的位置,必须重新开始(通常更快,犯更多的错误),但IIS调试会话完全关闭,我必须再次预热整个会话。ASP.NET调试时间与IIS

从调试会话中获得更多时间的最佳方式是什么?如果你将它设置得足够高

调试在IIS 7.5经典管道

+0

我不知道这是否有用,但以我的经验,我只有Web站点而不是Web的此问题应用。出于许多原因,我尽量避免像鼠疫这样的网站。 – Jaxidian 2010-04-29 23:41:29

+0

真的没有选择,这是我试图维护一个现有的网站,而我们建立新的WebAPP取而代之。 – Aren 2010-04-29 23:42:28

+0

您如何调试? Windbg或Visual Studio远程调试?在极端情况下,我使用windbg并附加到过程中。这样我仍然有状态。 – 2010-04-29 23:42:50

回答

30

香草3.5网页网站(不应用)设置连接限制的作品。我想再也不会为此感到困扰。 Here是我做过什么:

这里假设你已经有了在IIS管理器

选择的IIS应用程序池......在高级设置对话框中,找到流程模型部分,执行以下操作之一:

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

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

+0

值得注意的是,将响应时间设置为较大的值足以解决问题,Ping Enabled将有所帮助。标记为已接受,因为它比另一个更正确。 – Aren 2013-03-05 22:36:27

+0

我想我应该改变我的措辞,“......对我没用。”到“......没有按照我想要的方式工作,再也不会再打扰我了。” – 2013-03-05 23:27:07

+0

我只是将我的网站的应用程序池更改为其默认(DefaultAppPool)及其作品。 :) 谢谢。 – pampi 2016-12-12 00:07:26

4

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

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

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

完成调试后,您可以删除该属性,IIS将返回到默认设置。

2

请注意,如果您正在使用一个ScriptManager(用于比如更新面板),它使用它自己的超时通过设置:

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

我建议你把它设置为高值仅在调试时。您可以在脚本管理器存在的页面的页面加载事件中执行此操作:

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