SQLServerデータベースを呼び出す特定のアセンブリを参照する.NETWindowsサービスがあります。これらの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()){ ... }