如何增加长时间运行的查询的执行超时

本文关键字:运行 查询 执行 超时 长时间 何增加 增加 | 更新日期: 2023-09-27 18:34:30

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

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

如何增加长时间运行的查询的执行超时

框架 1.0 和 1.1 的执行超时为 90 秒.NET否则为 110 秒。

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

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

但请记住:

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

详细了解编译元素

查看有关 httpRuntime 元素的文档

您可以在

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

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

<httpRuntime  executionTimeout = "300" />

这使得执行超时为 5 分钟

可选的 Int32 属性。

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

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

RE."我们可以为单个页面设置此值吗" – MonsterMMORPG。

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

例如

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

上面的代码片段取自我自己的工作 web.config 的末尾,我昨天对其进行了测试-它对我有用。

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

Page.Server.ScriptTimeout = 60;

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

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

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

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

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