[ASP.NET]状態管理
1605 ワード
HTTPは無状態プロトコルであるため、異なる要求間で状態を共有できないが、異なる要求間の状態を維持するために有用である.例えば、ショッピングサイトのショッピングカートの実現はこの状態に依存して実現されます.
アプリケーションの状態管理
多くの人は下記のコードに詳しいと思います.
長所
欠点
InProc
1)aspnetからwp.exeで直接読み込むので、性能が一番いいです.
1)aspnet_wp.exeは、仮想ディレクトリのweb.com fig、Binディレクトリまたはメモリの使用量が最大になるなど、様々な理由で回収されるかもしれない.したがって、かなり大きな不安定性がある.2)Web Garden展開には適用されず、Web Farm展開にも適用されない.
StteServer
1)このようなモードのセッション変数はWindowsサービスに格納され、IISと独立していますので、IIS作業プロセス回収メカニズムの影響を受けません.2)Web GardenとWeb Farmの2つの展開モードに適用する.
1)プロセスをまたいだり、マシンをまたぐ(このWindowsサービスを別のサーバーに配置できるので)という問題があり、性能が低い.
SQLServer
StteServerモードの1)、2)の利点があるほか、以下の利点があります.
1)性能が低い.SQL Server、逆シーケンスなどを読むため.
参考資料:http://msdn.microsoft.com/en-us/library/87069683(VSL.71).aspx
アプリケーションの状態管理
多くの人は下記のコードに詳しいと思います.
Application.Lock();
Application["MyGlobalCounter"] =
(int)Application["MyGlobalCounter"] + 1;
Application.UnLock();
Application HttpApplicationState 。
Web 。
, ,
。
SessionID,
SessionID Token 。
SessionID :
1)Cookie
2) Cookie, URL 。
ASP.NET :InProc,StateServer,SQLServer.
長所
欠点
InProc
1)aspnetからwp.exeで直接読み込むので、性能が一番いいです.
1)aspnet_wp.exeは、仮想ディレクトリのweb.com fig、Binディレクトリまたはメモリの使用量が最大になるなど、様々な理由で回収されるかもしれない.したがって、かなり大きな不安定性がある.2)Web Garden展開には適用されず、Web Farm展開にも適用されない.
StteServer
1)このようなモードのセッション変数はWindowsサービスに格納され、IISと独立していますので、IIS作業プロセス回収メカニズムの影響を受けません.2)Web GardenとWeb Farmの2つの展開モードに適用する.
1)プロセスをまたいだり、マシンをまたぐ(このWindowsサービスを別のサーバーに配置できるので)という問題があり、性能が低い.
SQLServer
StteServerモードの1)、2)の利点があるほか、以下の利点があります.
1)性能が低い.SQL Server、逆シーケンスなどを読むため.
参考資料:http://msdn.microsoft.com/en-us/library/87069683(VSL.71).aspx