セッション状態については、以前に中さんがまとめられていた文章が大変分かり易いのですが、
探し物をしていて偶然、MSDNでApplication Restartsに関する記述を見つけたのでメモ。
MSDN - ASP.NET アプリケーションのライフ サイクルの概要
(ページの最下部のあたりのApplication Restartsに書かれています)
この資料によると、ソースコードを変更した時はもちろん、以下のような操作を行った場合も
アプリケーションが再起動されてしまうそうです。
- アプリケーションの既知のフォルダ内の特定の種類のファイルを変更、追加、
または削除した場合。
- アプリケーションの Bin フォルダでのアセンブリの追加、変更、または削除。
- App_GlobalResources フォルダまたは App_LocalResources フォルダでの
ローカリゼーション リソースの追加、変更、または削除。
- アプリケーションの Global.asax ファイルの追加、変更、または削除。
- App_Code ディレクトリ内のソース コード ファイルの追加、変更、または削除。
- プロファイル構成の追加、変更、または削除。
- App_WebReferences ディレクトリ内の Web サービス参照の追加、変更、または削除。
- アプリケーションの Web.config ファイルの追加、変更、または削除。
ちなみにInProcモードで動作させていた場合、アプリケーションの再起動がかかると
セッション変数の値は失われてしまいます。
#流石にもう知らない人は少ないとは思いますが(^^;
過去にもあちらこちらでInProcで運用する際の様々な注意点が話題になっていましたが、
それでもInProcを使うことを選ばれた方、ご注意を。