IISサーバー上で(実行時に)Web.configを編集するとどうなるかを教えてください。
web.configに依存するアプリケーションは自動的に再起動されますか?はいの場合、自動再起動(またはweb.configの再読み込み)をキャンセルできますか?
IISサーバー上で(実行時に)Web.configを編集するとどうなるかを教えてください。
web.configに依存するアプリケーションは自動的に再起動されますか?はいの場合、自動再起動(またはweb.configの再読み込み)をキャンセルできますか?
回答:
ASP.NET AppDomainは、web.configに「触れる」たびに再起動されます。フォルダーのファイル変更通知(FCN)をオフにすることは可能ですが、それを支援できる場合は通常最善の策ではありません。オフにした場合、変更を有効にするには、アプリプールを手動でリサイクルする必要があることを意味します。
IIS7より前は、ASP.NETの変更のみがAppDomainのリサイクルを引き起こしていましたが、IIS7とweb.configにある多くの設定では、これがより一般的な問題です。つまり、IIS 7マネージャーで既定のドキュメントを変更すると、そのAppDomainがリサイクルされるようになります。
理想的には、変更率を低く保つか、web.configではなくapplicationHost.config(AppDomainのリサイクルを引き起こさない)に変更を適用する必要があるだけです。
web.configを使用するアプリケーションは、変更すると再起動します。詳細は次のとおりです。
http://msdn.microsoft.com/en-us/library/ms178473.aspx
これが起こらないようにする方法はわかりません(そして、なぜそうしたいのかわかりません。おそらく、達成しようとしていることの詳細をいくつか提供することができます)。
FYI-ASP.NET 2.0では、組み込みのヘルスモニタリングイベントを使用して、アプリケーションの再起動と再起動の理由をログに記録できます。これにより、いつどのくらいの頻度で発生するかを明確に文書化できます。これは、マシンのマスターweb.configを編集することによって実現されます。
詳細については:
[注意事項]
私はこれが古いものであることを知っていますが、これはまだ注目に値します。
スコットフォーサイス-MVPの回答が正しくありません。
ASP.NET AppDomainは、web.configに「触れる」たびに再起動されます。
これは間違っています。
Whiskの回答は、1つの重要な詳細を含む MSDNへのリンクが含まれているため、最も技術的に正確で完全な回答です。
アプリケーションの再起動が必要な場合、ASP.NETは、アプリケーションドメインを再起動して新しいアセンブリを読み込む前に、既存のアプリケーションドメインと古いアセンブリからの保留中の要求をすべて処理します。
これは、Webサービスについて話すときに特に重要です。これは、昼間の再起動を安全に行っても問題ないことを示しています。