それについては絶対に疑いの余地はありません。 ASP.NETは古くなり、ASP.NETアプリケーションの大部分は現在、トラフィックが多く、ミッションクリティカルです。 つまり、Webサイト全体、または多くのユーザーがぶつかっている一部のサーバーの予定外のダウンタイムを許容することはできません。 これは、これらのダウンタイムにより、収益の損失と評判の悪さを修正するのが難しいため、多大なコストがかかるためです。
ASP.NETセッション状態ストレージが正しく処理されない場合、予定外のダウンタイムが発生する可能性があります。 Microsoftは、ASP.NETセッション状態用にXNUMXつのストレージオプションを提供しています。
- InProc: ワーカープロセス内に保持されるセッション
- StateServer: セッションは別のプロセスで維持されました
- SQLサーバー: SQLServerで保持されるセッション
- カスタム: サードパーティのカスタムストアで開催されたセッション
両方 進行中 また、StateServerには、ASP.NETセッション状態を複数のサーバーに複製する機能がないため、Webサーバーがダウンした場合にデータが失われます。 実際、あなたがシングルを持っているなら 状態サーバー ウェブサイト全体がダウンすると、ウェブサイト全体がダウンするため、完全に困惑します。
SQLサーバー はASP.NETセッション状態のXNUMX番目のストレージオプションであり、ミラー化クラスターまたは負荷分散クラスターのいずれかでデータベースクラスターを構築できるため、サーバーの冗長性とデータレプリケーションを提供します。
ただし、SQL Serverクラスターのセットアップには費用がかかり、より安価で実行可能な代替手段が利用可能です。 さらに、SQL Server(すべてのリレーショナルデータベースと同様)は、BLOBではなく構造化されたリレーショナルデータを格納するように設計されています。 一方、ASP.NETセッション状態はBLOBとしてSQLServerに格納されます。 そのため、セッションへのアクセスが遅いだけでなく、アプリケーションを拡張しようとすると、データベースがすぐにボトルネックになります。
これらすべてに代わるかなり優れた方法は、次のカスタムストレージオプションを使用することです。 ASP.NETセッション状態 インメモリ分散キャッシュを使用します(NCache)ASP.NETセッション状態ストレージとして。 NCache 複数のサーバー間でセッションを複製するため、いずれかのサーバーがダウンしても、セッションデータが失われることはありません。 NCache また、メモリ内にあるため、SQLServerよりもはるかに高速にアクセスできます。 ついに、 NCache Webファームのサイズが大きくなるにつれて、キャッシュクラスターを簡単にスケーリングできます。 ボトルネックが発生しないように、クラスターにキャッシュサーバーを追加するだけです。
そして何よりも、使用するために必要なプログラミングはありません NCache ASP.NETセッション状態ストレージ用。 web.configを変更して、以下を指定するだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<assemblies> <add assembly="Alachisoft.NCache.SessionStoreProvider, Version=4.4.0.0, Culture=neutral, PublicKeyToken=CFF5926ED6A53769"/> </assemblies> <sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" customProvider="NCacheSessionProvider" timeout="20"> <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" sessionAppId="NCacheTest" enableLogs="false" cacheName="myReplicatedCache"/> </providers> </sessionState> |
WebファームでASP.NETアプリケーションを実行している場合は、 NCache ASP.NETセッション状態ストレージがどのように改善されるかを確認してください。 ここにいくつかの便利なリンクがあります NCache:
高可用性と信頼性を実現するために、キャッシュ クラスター内に少なくとも 4 つの専用サーバーから始めることができます。その後、アプリケーションの最適なパフォーマンスとスケーラビリティを得るために、Web/アプリ サーバーとキャッシュ サーバーの比率を 1:XNUMX に維持することをお勧めします。 。