InProc セッション状態モード ASP.NET 使用すると、セッション データが失われます
この記事は、InProc セッション状態モードを使用するときにセッション データが失われる問題 ASP.NET 解決するのに役立ちます。
元の製品バージョン: ASP.NET
元の KB 番号: 324772
現象
ASP.NET Web アプリケーションのセッション データは、InProc セッション状態モードのランダムな間隔で失われるように見えます。
原因
クラスまたは Aspnet_wp.exe プロセス (または IIS 7.0 以降のバージョンで実行されるアプリケーションの W3wp.exe プロセス) がリサイクルされた場合 AppDomain
、セッション状態データは失われます。 一般に AppDomain
、 は、いくつかの要因に基づいて再起動されます。
- さまざまな属性 (属性など) には、
memoryLimit
構成ファイルのセクションに<processModel>
特定の設定があります。 - Global.asax または Web.config ファイルが変更されました。
Bin
Web アプリケーションのディレクトリが変更されました。- ウイルススキャンソフトウェアは、いくつかの .config ファイルに触れました。
InProc セッション モードは、セッション状態がローカルに格納されていることを示します。 つまり、InProc セッション状態モードでは、Web アプリケーションの AppDomain
ライフ オブジェクトとして格納されます。 このため、Aspnet_wp.exe (または IIS で実行されるアプリケーションの場合は W3wp.exe) または再起動時にセッション状態が AppDomain
失われます。
解決方法
この問題を回避するには、StateServer または SqlServer セッション状態モードを使用します。 ASP.NET では、セッション状態データを格納するための他の方法が提供されます。 StateServer モードと SqlServer モードでは、セッション状態は Web アプリケーションの に AppDomain
格納されません。
注:
要件に適したモードを決定するときは、各セッション状態モードに関連付けられている動作と問題を理解することが重要です。
状態
この動作は仕様です。
関連情報
ASP.NET セッション状態管理とその他の関連情報の詳細については、「 セッション状態」を参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示