C# 忽略连接字符串中的连接超时属性
我正在用C#构建一个应用程序。我使用的连接字符串如下:C# 忽略连接字符串中的连接超时属性,c#,timeout,connection-string,C#,Timeout,Connection String,我正在用C#构建一个应用程序。我使用的连接字符串如下: DSN=SomeDataSource; Trusted Connection = yes; Uid=SomeId; pwd=somePwd; Connection Timeout=x 但是,无论我将哪个值设置为x(ConnectionTimeout=x),通过设置断点,我可以看到我的DbConnection对象的ConnectionTimeout属性始终具有默认值15 我是不是遗漏了什么 谢谢。连接字符串中的连接超时仅控制连接的超时。如果
DSN=SomeDataSource; Trusted Connection = yes; Uid=SomeId; pwd=somePwd; Connection Timeout=x
但是,无论我将哪个值设置为x
(ConnectionTimeout=x
),通过设置断点,我可以看到我的DbConnection
对象的ConnectionTimeout
属性始终具有默认值15
我是不是遗漏了什么
谢谢。连接字符串中的
连接超时
仅控制连接的超时。如果您需要增加命令的等待时间,请使用SqlCommand的CommandTimeout
属性。我看不到您指示的behvior,至少在我使用
连接的属性与生成器上的集匹配。我使用5、20和120作为值,所有这些都是在连接上设置的
使用System.Data.SqlClient
var builder = new SqlConnectionStringBuilder();
builder.ApplicationName = "My Demo App";
builder.ConnectTimeout = 5;
builder.DataSource = "(local)";
builder.InitialCatalog = "My Database";
builder.IntegratedSecurity = true;
using(var connection = new SqlConnection(builder.ConnectionString))
{
Console.WriteLine("Connection Timeout: {0}", connection.ConnectionTimeout);
}
如果您不是在处理SQL,那么还可以考虑使用或其子类型之一。一般来说,我认为使用一个可用的构建器以编程方式构建连接字符串是最安全的,这样可以避免创建连接时使用的连接字符串格式错误。是的,15是最小值,具体取决于您所做的操作。可能是每一件事。我甚至发现,当尝试使用SQL本机客户端使用少于15个(带有一些第三方控件)时,我最终会出现无限超时。讨厌。当我设置为15或更高时,它的行为与预期的一样。是否尝试将X设置为高于或低于15?您是否确认它实际上是在15而不是在X超时(例如,您看到的值可能是一条红鲱鱼)。另外,更多的代码和/或上下文在这里会更有帮助(例如,您是否连接到Oracle DB等)。我正遇到这个问题。奇怪的是,我添加了日志记录来确认正在使用的连接字符串及其所需的时间,我只得到了9秒或10秒,而不是我要求的120秒或15秒,这是默认值。这里也是一样。已尝试连接超时=5,连接超时=5。两者都被忽略,需要15分钟。也许最少15个??你解决了这个问题吗?面对同样的问题,谢谢!