如何更改connection_instance.Open()命令的超时?

时间:2012-12-17 16:03:45

标签: sql-server entity-framework

人们!

我正在使用Entity Framework(但实际上并不重要)和多个数据库(ObjectContexts)。其中一个sql server有附加数据,这是可选的,有时可以脱机。

当我尝试在服务器脱机时尝试处理任何命令的异常时,我应该在connection_instance.Open()命令操作上等待60秒,这给了我异常:

  

建立与服务器的连接时发生错误。   连接到SQL Server 2005时,此故障可能是由   事实上,在默认设置下SQL Server不允许远程   连接。 (提供者:命名管道提供者,错误:40 - 不能   打开与SQL Server的连接)

我可以以某种方式将此超时时间从60秒更改为另一个值的5秒吗?顺便说一句,我的实体框架超时连接是2秒,但它忽略了。

看起来这个超时设置为整个系统(可能在Windows寄存器中)。我尝试通过SQL Management Studio连接到这个sql服务器,并尝试连接60秒,并在获得相同的异常后。

那么,有没有办法改变这个超时值?或者也许是另一种检查sqlserver状态的快速方法?

2 个答案:

答案 0 :(得分:0)

ObjectContext.CommandTimeout有效吗?

 /// <summary>
/// Gets or sets the timeout value, in seconds, for all object context operations. A null value indicates that the default value of the underlying provider will be used.
/// </summary>
/// 
/// <returns>
/// An <see cref="T:System.Int32"/> value that is the timeout value, in seconds.
/// </returns>
/// <exception cref="T:System.ArgumentException">The timeout value is less than 0. </exception>
public int? CommandTimeout

答案 1 :(得分:0)

我找到了解决方案:应该检查TCP连接。

查看这篇文章http://improve.dk/archive/2008/03/10/controlling-sqlconnection-timeouts.aspx