58

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

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

4

6 回答 6

117

.NETFramework 1.0 和 1.1的执行超时为 90 秒,否则为 110 秒。

如果您需要更改默认设置,您需要在您的web.config下进行<httpRuntime>

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

但要记住:

此超时仅在编译元素中的调试属性为 False 时适用。

详细了解编译元素

看看这个关于httpRuntime Element的文档

于 2012-05-18T09:36:18.317 回答
28

您可以executionTimeoutweb.config中设置以支持更长的执行时间。

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

<httpRuntime  executionTimeout = "300" />

这使执行超时为五分钟

可选的 Int32 属性。

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

此超时仅在编译元素中的调试属性为 False 时适用。因此,如果调试属性为 True,则不必将此属性设置为较大的值以避免在调试时关闭应用程序。默认值为 110 秒,参考

于 2012-05-18T09:35:11.377 回答
14

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

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

例如

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

上面的片段取自我昨天测试过的我自己的工作 web.config 的末尾 - 它对我有用。

于 2016-09-09T09:14:46.253 回答
3

要在每页级别设置超时,您可以使用以下简单代码:

Page.Server.ScriptTimeout = 60;

注意:60 表示 60 秒,此超时仅适用于编译元素中的调试属性为 False 的情况。

于 2017-01-22T08:43:10.387 回答
1

当查询需要这么长时间时,我建议异步运行它并在完成时使用回调函数。

我对 ASP.NET 没有太多经验,但也许您可以将 AJAX 用于这种异步行为。

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

于 2012-05-18T09:23:53.247 回答
1

就我而言,我需要让我的 wcf 运行超过 2 小时。设置,根本没有工作。wcf 的执行时间可能不超过 20~30 分钟。所以我在 IIS 管理器中更改了应用程序池的空闲超时设置,然后它就起作用了!在 IIS 管理器中,选择您的应用程序池并右键单击它并选择高级设置,然后将空闲超时设置更改为您想要的任何分钟。所以,我认为设置 web.config 和设置应用程序池都是需要的。

于 2015-12-11T09:32:41.280 回答