【问题标题】:Long running query timing out长时间运行的查询超时
【发布时间】:2014-09-24 15:42:35
【问题描述】:

让一个网站运行一个查询,该查询可以很好地处理返回的少量数据。当用户运行一个需要很长时间运行的时间框架时,我会不断得到

[System.Data.SqlClient.SqlException] = {"Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding."}

此查询在 SQL 服务器本身上运行不会超时。

我在 Web.config 中有以下内容

<httpRuntime executionTimeout="360000"/>

项目在更新面板中运行,所以我有这个

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="360000"/>

我在连接字符串中设置了超时,并在 sql 命令中设置了一个但没有更改。

【问题讨论】:

  • 从管理工作室运行查询需要多长时间?

标签: sql asp.net


【解决方案1】:

您是否检查过来自 sql server 的连接配置是否与您使用的连接字符串不同。我怀疑这是它从 sql 服务器而不是代码工作的原因。 在 sql server 中默认检查一些选项。它应该在工具下。 您可以将 SET 语句添加到您的代码中以匹配它。

也看看这是否有帮助 - http://www.serverintellect.com/support/programming/sql-qtimeout/

【讨论】:

    【解决方案2】:

    此特定错误来自 SQL 命令 您需要增加 SqlCommand 对象的超时时间。请记住,您的 UpdatePanel 命令在它自己的回发中运行,因此您使用的 SqlCommand 对象与在整个页面生命周期中使用的对象不同。确保将超时设置在对更新面板有效的地方。

    查看此答案了解更多信息:

    Time out period not elapsed, but still timing out (see code)?

    您需要确保管道每一级的超时值都足够大以支持这一点。

    当然,最好的选择是调整您的查询。如果您遇到了 30 秒超时问题,您可能需要回到绘图板上来了解您正在做的事情,甚至需要重新考虑用户界面以避免需要显示太多数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多