人们!
我正在使用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状态的快速方法?
答案 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