web-dev-qa-db-ja.com

セッション変数はどこに保存されますか?

セッション変数は正確にどこに保存されますか?クッキー?サーバーメモリ?

繰り返しますが、アプリケーション変数はどこに保存されますか?

34
Manish

Sessionに入れられた変数は、構成されたSessionStateProviderが変数を格納するように構成されている場所に格納されます。

デフォルトのSessionStateProviderは、インプロセス(InProc)セッションと呼ばれるものを使用します。この保存場所は、ASP.NETワーカープロセスのメモリスペース内のサーバーメモリ内にあります。

独自のSessionStateProviderを構成して、プロセス変数などの別の場所にセッション変数をデータベースに保存できます。

アプリケーション変数はApplicationStateに保存され、ASP.NETワーカープロセスのメモリスペースにも保存されます。セッション状態とは異なり、アプリケーション状態はすべてのユーザーとセッションに適用されます。私の知る限り、ApplicationStateを他の場所に保存する設定はありません。大量のアプリケーションデータを保存する必要がある場合は、 ASP.NET Caching をご覧ください。

44
Russ Cam

セッション変数サーバーメモリとディスクアプリケーション変数です。

ASP.NETドキュメント から:

ASP.NETセッション状態は、セッション変数のいくつかのストレージオプションをサポートしています。各オプションは、セッション状態のモードタイプとして識別されます。デフォルトの動作は、ASP.NETワーカープロセスのメモリ空間にセッション変数を保存することです。ただし、セッション状態を別のプロセス、SQL Serverデータベース、またはカスタムデータソースに保存するように指定することもできます。アプリケーションでセッション状態を有効にしたくない場合は、セッションモードをオフに設定できます。

12

InProcセッションの場合、変数はASP.NETワーカープロセスのメモリにローカルに保存されます。アプリケーションの状態についても同様です。

4
Dienekes