ASP.NETセッションの状態ストレージ
ASP.NET セッション状態は、構成設定に応じて複数の場所に格納できます。以下は一般的な格納オプションです。
InProc:セッションの状態は、デフォルトでアプリケーションのメモリ(InProc)に格納されます。
StateServer:セッションの状態は「ASPState」という専用のサービスに保存できます。このサービスは別のサーバーで実行でき、複数のサーバー間でセッションを共有することができます。これは負荷分散環境に非常に便利です。
3. SQL サーバー: セッション状態を SQL サーバーのデータベースに格納できます。この方法は、大規模 Web アプリケーションに適しています。この方法は高信頼性のセッション状態管理を提供し、複数のサーバー間でのセッション共有をサポートします。
4. カスタム:上記のオプションでは要件を満たさない場合、カスタムのセッションステートプロバイダーを実装できます。これにより、セッションステートをメモリキャッシュやNoSQLデータベースなどの他の場所に保存できます。
セッション状態格納場所にSQL Serverを使用する場合、web.configファイルに接続文字列等を設定する必要がある。
<configuration>
<system.web>
<sessionState mode=”SQLServer”
sqlConnectionString=”Data Source=serverName;Initial Catalog=databaseName;User ID=userName;
Password=password”
timeout=”20″ />
</system.web>
</configuration>
どちらの保存先を選択する場合も、セッション状態のサイズとパフォーマンス要件を考慮し、期限切れのセッションデータを適切に管理してクリーンアップすることを確実に注意してください。