在我的应用程序中,一个查询需要3分钟才能执行。我发现默认ExecutionTimeout值是110秒。我试图将其更改为500(秒),但它没有解决我的问题。某处我发现设置<compilation debug="false">
允许配置 ExecutionTimeout 属性。但是,即使这样也没有解决我的问题。
有谁知道如何为长时间运行的查询增加执行超时?
答案 0 :(得分:104)
.NET
Framework 1.0和1.1的执行超时为90秒,否则为110秒。
如果您需要更改defult设置,则需要在web.config
下的<httpRuntime>
<httpRuntime executionTimeout = "number(in seconds)"/>
但请记住:
仅当编译元素中的debug属性为False时,此超时才适用。
请查看有关httpRuntime Element
的文档答案 1 :(得分:23)
您可以在 web.config 中设置executionTimeout
以支持更长的执行时间。
executionTimeout
指定在ASP.NET自动关闭之前允许执行请求的最大秒数。 MSDN
<httpRuntime executionTimeout = "300" />
这会使执行超时五分钟。
可选的Int32属性。
指定允许请求的最大秒数 在被ASP.NET自动关闭之前执行。
此超时仅适用于编译中的debug属性 元素是假的。因此,如果debug属性为True,则执行此操作 不必将此属性设置为较大的值以避免 在调试时关闭应用程序。默认值为110秒,Reference。
答案 2 :(得分:8)
RE。 “我们可以为单个页面设置此值” - MonsterMMORPG。
是的,您可以(通常应该)使用location-tag包含上一个答案。
e.g。
...
<location path="YourWebpage.aspx">
<system.web>
<httpRuntime executionTimeout="300" maxRequestLength="29296" />
</system.web>
</location>
</configuration>
上面的代码片段是从我自己的web.config结尾处获取的,我昨天测试过它 - 它对我有用。
答案 3 :(得分:2)
当查询花费那么长时间时,我会建议异步运行它并在完成时使用回调函数。
我对ASP.NET没有多少经验,但也许你可以使用AJAX来实现这种异步行为。
通常,网页应该在几秒钟内加载,而不是几分钟。不要让用户等待这么久!
答案 4 :(得分:2)
要在每页级别设置超时,您可以使用以下简单代码:
Page.Server.ScriptTimeout = 60;
注意:60表示60秒,仅当编译元素中的debug属性为False时才应用此超时。
答案 5 :(得分:1)
在我的情况下,我需要让我的wcf运行超过2个小时。设置并且根本不起作用。 wcf的执行时间不超过20~30分钟。所以我在IIS管理器中更改了应用程序池的空闲超时设置然后它工作了!在IIS管理器中,选择您的应用程序池并右键单击它并选择高级设置,然后将空闲超时设置更改为您想要的任何分钟。所以,我认为需要设置web.config并设置应用程序池。