ConnectionString超时被忽略

时间:2012-09-26 15:38:34

标签: .net windows-services connection-string

我有一个.NET Windows服务,它引用了一个调用SQL Server数据库的特定程序集。这些SQL调用的连接字符串被编码为从ConfigurationManager.ConnectionStrings [“myconnection”]中提取。

在服务的安装目录中,我有一个包含连接字符串“myconnection”的配置文件,它最初没有连接超时值,并且长时间运行的查询在30秒后不合需要地超时。但是,通过在连接字符串中添加“Connection Timeout = 300”并重新启动服务,我们看到没有区别。

编辑:commandtimeout属性设置为300.示例如下:

SqlCommand _command     = new SqlCommand(Sql, _con);
            SqlDataReader _DR       = _command.ExecuteReader();
            _command.CommandTimeout = 300;
            string _fieldValue;
            string _columnValue;

            while (_DR.Read()){ ... }

1 个答案:

答案 0 :(得分:3)

您需要将SqlCommand.CommandTimeout设置为更高的值。

SqlCommand.CommandTimeout是单个sql命令可以使用多长时间 SqlConnection.ConnectionTimeout是建立与sql server的连接所需的时间。

我不相信可以从配置文件中设置SqlCommand.CommandTimeout - 它必须设置在SqlCommand本身的每个实例上。