我有一个用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.
答案 0 :(得分:3)
在代码中设置CommandTimeout = 0
并将其从配置文件中删除。
设置Timeout = 0
表示,如果长时间操作,它将完成作业。
答案 1 :(得分:0)
您的context connection=true
文件中的连接字符串中是否有Web.config
?根据{{3}}:
对上下文连接执行命令时,CommandTimeout无效