ここでは、セッション状態ではなく、ASP.NET のさまざまな種類のセッションを知りたいと考えています。それはインタビューで尋ねられた質問でした。
5 に答える
セッション状態モードは 5 種類です。
InProc モード:セッション状態を Web サーバーのメモリに保存します。これがデフォルトです。
StateServer モード: ASP.NET 状態サービスと呼ばれる別のプロセスにセッション状態を格納します。これにより、Web アプリケーションが再起動されてもセッション状態が保持され、Web ファーム内の複数の Web サーバーでセッション状態を使用できるようになります。
SQLServerモードは、セッション状態を SQL Server データベースに保存します。これにより、Web アプリケーションが再起動されてもセッション状態が保持され、Web ファーム内の複数の Web サーバーでセッション状態を使用できるようになります。
カスタム モード:カスタム ストレージ プロバイダーを指定できます。
オフ モード:セッション状態を無効にします。
詳細を確認してください。https://msdn.microsoft.com/en-us/library/ms178586.aspx
OPからさらに明確にする必要があります。用語は互換的に使用されているように感じます。
本来、Web はステートレスです。これを克服するために、ASP.Net は、viewstate、controlstate などのいくつかの状態管理オプションを提供します。セッション状態は、これらのオプションの 1 つです。
ASP.NETセッション状態は、セッション変数のいくつかのストレージ オプションをサポートしています。各オプションは、セッション状態モードタイプとして識別されます。4 つのモード タイプまたはモードのみがあります。インプロセス モード、ステート サーバー モード、SQL サーバー モード、カスタム モード、およびオフ モード。これらはモードです。インプロセス モードでは、セッション ストレージとしてメモリが使用されます。State Server モードは state-server をセッション ストレージとして使用します. 等々。また、web.config でモードを指定する場合、接続文字列やタイムアウトなどの追加パラメータも必要です。これらのパラメータの 1 つは「cookieless」で、デフォルト値は「AutoDetect」です。「true」を指定すると、URL に ID が埋め込まれます。(@naivistsの説明による)。Cookieless オプションは、どのモードでも使用できます。
これが ASP.Net セッションのすべてです。状態、モード、モード タイプ、ストレージなどの用語が同じ意味で使用されていることに混乱があるように感じます。それとは別に、「セッションタイプ」として別のものがあってはなりません。
asp.net の 3 種類のセッション。
- インプロセス セッション
- アウト プロセス セッション
- SQL サーバー セッション