如何为长时间运行的查询增加executionTimeout?

在我的应用程序中,一个查询需要3分钟才能执行。 我发现默认ExecutionTimeout值是110秒 。我试图将其更改为500(秒),但它并没有解决我的问题。 在某处我发现设置<compilation debug="false">允许configurationExecutionTimeout属性。 但是,即使这并没有解决我的问题。

有谁知道我可以如何增加长时间运行查询的执行超时?

对于.NET Framework 1.0和1.1,执行超时为90秒,否则为110秒。

如果你需要更改defult设置,你需要在web.config <httpRuntime>

 <httpRuntime executionTimeout = "number(in seconds)"/> 

但要记住:

只有编译元素中的debug属性为False时,此超时才适用。

关于编译元素有详细的看看

看看这个关于httpRuntime元素的文档

你可以在web.config中设置executionTimeout来支持更长的执行时间。

executionTimeout指定在被ASP.NET自动closures之前允许执行请求的最大秒数。 MSDN

 <httpRuntime executionTimeout = "300" /> 

这使执行超时五分钟

可选的Int32属性。

指定在被ASP.NET自动closures之前允许执行请求的最大秒数。

只有编译元素中的debug属性为False时,此超时才适用。 因此,如果debug属性为True,则不必将此属性设置为较大的值,以避免在debugging时closures应用程序。 默认值是110秒, 参考 。

回覆。 “我们可以为单个页面设置这个值” – MonsterMMORPG。

是的,您可以(通常应该)使用位置标记附上先前的答案。

例如

  ... <location path="YourWebpage.aspx"> <system.web> <httpRuntime executionTimeout="300" maxRequestLength="29296" /> </system.web> </location> </configuration> 

上面的代码片段是从我自己的工作web.config,我昨天testing的结束采取 – 它适用于我。

当一个查询需要那么长时间时,我会build议asynchronous运行,并在完成时使用callback函数。

我没有太多的ASP.NET经验,但也许你可以使用AJAX的这种asynchronous行为。

通常,网页应该在几秒钟内加载,而不是几分钟。 不要让你的用户等待这么久!

在我的情况下,我需要让我的wcf运行超过2个小时。 设置和根本没有工作。 wcf的执行时间不超过20〜30分钟。 所以我改变了IISpipe理器中的应用程序池的空闲超时设置,然后它工作! 在IISpipe理器中,select您的应用程序池并右键单击它并select高级设置,然后将空闲超时设置更改为您需要的任何分钟。 所以,我认为设置web.config和设置应用程序池都是需要的。

要设置每个页面级别的超时时间,您可以使用这个简单的代码:

 Page.Server.ScriptTimeout = 60; 

注:60表示60秒,只有在编译元素中的debug属性为False时,此超时才适用。