我有一个.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()){ ... }
答案 0 :(得分:3)
您需要将SqlCommand.CommandTimeout设置为更高的值。
SqlCommand.CommandTimeout是单个sql命令可以使用多长时间 SqlConnection.ConnectionTimeout是建立与sql server的连接所需的时间。
我不相信可以从配置文件中设置SqlCommand.CommandTimeout - 它必须设置在SqlCommand本身的每个实例上。