2017-06-09 26 views
1

asp.netアプリケーションでlog4netを使用し、SQL Serverを指しています。MultipleActiveResultSets = "true"を削除するとlog4netの動作が停止する

接続文字列からMultipleActiveResultSets = "true"を削除してIISを再起動し、アプリケーションはログを記録し続けました。しかし、その後、SQL Serverを再起動し、log4netは動作を停止しました。

MultipleActiveResultSets = "true"を接続文字列に追加してIISを再起動しましたが、log4netはまだ動作しませんでした。その後、接続文字列でMultipleActiveResultSets = "true"を指定してSQL Serverを再起動し、log4netが再び動作を開始しました。

log4netで接続文字列にMultipleActiveResultSets = "true"が必要ですか?接続文字列にMultipleActiveResultSets = "true"を指定しないとlog4netが動作する回避策はありますか?

+1

カスタムコードを使用している場合を除いて、奇妙に見えます - a)なぜlog4netはデータベースに問い合せますか? b)私はその設定なしでlog4netを何度も使用しました。私は[log4netデバッグを有効にする](http://haacked.com/archive/2006/09/27/Log4Net_Troubleshooting.aspx/)と出力を見てみることをお勧めします。 – stuartd

+0

@stuartd、私はlog4netの内部デバッグを有効にしていますが、「既存の接続はリモートホストによって強制的に閉じられました」というメッセージが表示されます。私は質問に完全なエラーテキストを追加します。 –

答えて

1

のSQL Serverを再起動した後、IISを再起動するだけで済みました。このとき、接続文字列にMultipleActiveResultSets = trueが含まれていなくても、log4netは再び動作を開始しました。

+1

ああ、[エラーが発生した後、デフォルトではlog4netはデータベースに再接続しません](https://logging.apache.org/log4net/log4net-1.2.11/release/sdk/log4net.Appender.AdoNetAppender.ReconnectOnError。 html) – stuartd

関連する問題