C#.net控制台应用程序SQLCommand.CommandTimeOut属性不起作用

时间:2012-06-24 03:55:19

标签: sql-server c#-4.0 console-application connection-timeout

我有一个用C#4.0编写的控制台应用程序。我正在运行一个SQL存储过程,有时需要太长时间,并且会抛出连接超时异常。

为了处理它,我首先在web.config文件的连接字符串中将Timeout设置为360,但没有运气。

然后我尝试了:

SQLCommand cmd = new SQLCommand();
 cmd.CommandTimeout = 360;

但这也行不通。

非常感谢任何帮助。我尝试对Entity Framework 4.0做同样的事情,但遇到了同样的问题。我提供的超时值未被应用!

<add name="ConnectionString" connectionString="SERVER=db.mydomain.com;DATABASE=DatabaseName;UID=userID;PWD=Password;Connect Timeout=360;Packet Size=8192;Pooling=True;Min Pool Size=1;Max Pool Size=1000;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

例外:

Timeout expired: The timeout period elapsed prior to completion of the operation or the server is not responding.

2 个答案:

答案 0 :(得分:3)

在代码中设置CommandTimeout = 0并将其从配置文件中删除。

设置Timeout = 0表示,如果长时间操作,它将完成作业。

答案 1 :(得分:0)

您的context connection=true文件中的连接字符串中是否有Web.config?根据{{​​3}}:

  

对上下文连接执行命令时,CommandTimeout无效