长时间运行查询超时

时间:2014-09-24 15:42:35

标签: sql asp.net

让网站运行查询,该网站可以正常返回小数据集。当用户运行需要很长时间才能运行的时间范围时,我会继续

[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命令中设置了一个但没有更改。

2 个答案:

答案 0 :(得分:1)

您是否检查过您的sql server连接是否与您正在使用的连接字符串有任何不同。我怀疑这是它从sql server而不是代码工作的原因。 默认情况下,在sql server中检查某些选项。它应该在工具之下。 您可以在代码中添加SET语句以匹配该语句。

另外,看看这是否会有所帮助 - http://www.serverintellect.com/support/programming/sql-qtimeout/

答案 1 :(得分:0)

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

有关详细信息,请参阅此答案:

  

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

您需要确保管道的每个级别的超时值都足以支持此值。

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