web-dev-qa-db-ja.com

IISサーバー上で(実行時に)Web.configを編集するときに正確に何が起こるか教えていただけますか?

IISサーバー上で(実行時に)Web.configを編集するときに正確に何が起こるか教えてください。

Web.configに依存するアプリケーションは自動的に再起動されますか?はいの場合、自動再起動(またはweb.configの再読み込み)をキャンセルできますか?

10

ASP.NET AppDomainは、web.configに「触れる」たびに再起動されます。フォルダーのファイル変更通知(FCN)をオフにすることは可能ですが、それを支援できる場合は通常最善の策ではありません。オフにした場合は、変更を有効にするためにアプリプールを手動でリサイクルする必要があることを意味します。

IIS7より前は、ASP.NETの変更のみがAppDomainのリサイクルを引き起こしていましたが、IIS7とweb.configにある多くの設定では、これがより一般的な問題です。つまり、IIS 7 Managerでデフォルトのドキュメントを変更すると、AppDomainが今すぐリサイクルされます。

理想的には、変更率を低く保つか、web.configではなくapplicationHost.config(AppDomainのリサイクルを引き起こさない)に変更を適用する必要があるだけです。

10

Web.configを使用するアプリケーションは、変更すると再起動します。詳細は次のとおりです。

http://msdn.Microsoft.com/en-us/library/ms178473.aspx

これが起こらないようにする方法はわかりません(なぜそうしたいのかわかりません。おそらく、達成しようとしていることの詳細を提供できます)。

4
Whisk

[JUST A NOTE]

私はこれが古いものであることを知っていますが、これはまだ注目に値します。

スコットフォーサイス-MVP回答が正しくありません。

ASP.NET AppDomainは、web.configに「触れる」たびに再起動されます。

これは間違っています。


Whisk answer 含まれているため、技術的に最も正確で完全な回答 MSDNへのリンク これには1つの重要な詳細が含まれます。

アプリケーションの再起動が必要な場合、ASP.NETは、アプリケーションドメインを再起動して新しいアセンブリを読み込む前に、既存のアプリケーションドメインと古いアセンブリからの保留中の要求をすべて処理します。

これは、Webサービスについて話すときに特に重要です。これは、昼間の再起動を安全に行っても問題ないことを示しています。

4
user1416420

FYI-ASP.NET 2.0では、組み込みのヘルスモニタリングイベントを使用して、アプリケーションの再起動と再起動の理由をログに記録できます。これにより、発生する頻度と頻度を明確に文書化できます。これは、マシンのマスターweb.configを編集することによって実現されます。

詳細については:

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

3
Greg Askew