ASP.NETパフォーマンス最適化のための状態キャッシングの表示

ASP.NETのビュー状態は、クライアントからのリクエストの往復間でページやコントロールの値を保持することで、クライアント側の状態を管理する組み込み機能です。これにより、HTTPなどのステートレスなプロトコル上で、状態に完全なプログラミング機能を与えることができます。

この状態は、クライアントに送信されるすべてのレスポンスの一部として、ページ上の隠しフィールドにエンコードされたBase64文字列として保存されます。クライアントからは、ポストバックの一部としてサーバーに返されます。

<input id = "__VIEWSTATE"
       type = "hidden"
       name = "__VIEWSTATE"
       value = "/wEPDwUJNzg0MDMxMDA1D2QWAmYPZBYCZg9kFgQCAQ9kFgICBQ9kFgJmD2QWAgIBD
              xYCHhNQcm2aW91c0NvbnRyb2xNb2RlCymIAU1pY3Jvc29mdC5TaGFyZVBvaW50Lld
              lYkNvbnRyb2xzLlNQQ29udHJbE1vZDA1XzRlMjJfODM3Y19kOWQ1ZTc2YmY1M2IPD
              2...=="/>

ASP.NETのビュー状態は非常に便利ですが、解決すべきいくつかの問題点があります。それらについては以下で説明します。

  1. ASP.NETのビュー状態はしばしば重い。 ASP.NETアプリケーションのページに、高機能で重いコントロールやウィジェットが多数含まれる場合、ブラウザとWebサーバー間で大量のデータがやり取りされます。この大きなペイロードは、ASP.NETアプリケーションのパフォーマンス低下と帯域幅の高コストにつながります。
  2. ASP.NETのビュー状態にはセキュリティ上のリスクがあります。 ビュー状態の一部として機密データをクライアントに送信する場合、セキュリティリスクが生じる可能性があります。このデータは攻撃に対して脆弱であり、攻撃者が改ざんする可能性があります。ASP.NET ビュー状態データを暗号化することは可能ですが、これもパフォーマンスの低下につながります。

NCache ASP.NET ビュー状態

これらの ASP.NET ビューの状態の問題を解決する 1 つの方法は、実際の ASP.NET ビュー状態 Webサーバー上で処理を行い、代わりに一意のトークン(またはID)をブラウザに送信します。これにより、ブラウザは次回このトークンをWebサーバーに送り返すことができます。Webサーバーはこのトークンを使用して、ストア内の適切なASP.NETビュー状態を検索します。以下に、トークンの使用例を示します。

<input type = "hidden"
       name = "__VIEWSTATE"
       id = "__VIEWSTATE"
       value = "vs:cf8c8d3927ad4c1a84da7f891bb89185" />

ASP.NETのビュー状態はWebサーバーに保存することもできますが、ロードバランシングされたWebファームでASP.NETアプリケーションを実行している場合は、次のHTTPリクエストが別のWebサーバーに送信される可能性があるため、理想的ではありません。したがって、ASP.NETのビュー状態は、すべてのWebサーバーからアクセス可能な共有ストアに保存する必要があります。

ASP.NET ビューの状態を保存する分散キャッシュ - NCache
図1:ASP.NETビュー状態を格納する分散キャッシュ

サーバー上で ASP.NET ビューの状態を保存するのに最適な場所は、 分散キャッシュ。 このようにして、すべてのWebサーバーに共通のストアを作成できるだけでなく、非常に多くのWebサーバーを作成することもできます。 高速でスケーラブルなメモリ内ストア SQLServerデータベースまたは他のストレージオプションと比較して。

NCache は、.NET、Java、Python、Node.js向けの非常に高速でスケーラブルな分散キャッシュです。また、 ASP.NET ビュー状態 上記の問題を解決するため。

ASP.NET ビューの状態を構成する NCache

ASP.NET View State を構成するには、 AspNet.ViewState。NCache NuGetパッケージ 前提条件として、 アプリブラウザ ファイル NCache ページアダプタを差し込みます。次に、 web.configファイルを構成します アプリケーションでView Stateを構成用に登録し、登録済みの構成セクションの設定を指定します。 NCache ASP.NET View State ドキュメント ステップバイステップの構成用。

同じキャッシュがビュー ステート キャッシュとその他のデータに使用されている場合、次のことができます。 ビューステートデータをフェッチする NC_ASP.net_viewstate_data タグを次のように使用します。

Hashtable allViewStateData = cache.SearchService.GetByTag(new Tag("NC_ASP.net_viewstate_data"));

サーバー上でASP.NETビューの状態をキャッシュするメリット

ASP.NET ビューの状態をキャッシュすることで、次のメリットが得られます。 NCache.

  1. ASP.NETのパフォーマンスを向上させる: NCache 要求/応答ペイロードを減らし、全体的な要求時間を改善します。
  2. 帯域幅コストの削減: ペイロードが小さくなることで、帯域幅の消費コストも大幅に削減されます。これにより、大幅なコスト削減が可能になります。
  3. セキュリティ: ASP.NETのビュー状態エンコードされた文字列がブラウザに送信されなくなったため、セキュリティ上のリスクはなくなりました。
  4. 高速かつスケーラブルなASP.NETビュー状態ストレージ: NCache これは非常に高速で拡張性の高い分散キャッシュです。つまり、ASP.NET のビュー状態ストレージが原因で、ASP.NET が拡張性のボトルネックに直面することはありません。
  5. ASP.NET のビュー状態のレプリケーションによる信頼性: NCache 分散キャッシュ内のすべてのデータをインテリジェントに複製します。つまり、キャッシュサーバーがダウンしても、ASP.NET ビューの状態が失われることはありません。

高度な ASP.NET ビュー状態キャッシュ機能 NCache

NCache ASP.NET ビューの状態をキャッシュおよび管理するための豊富な機能を提供します。以下にその一覧を示します。

  1. 最小サイズのしきい値: NCache ASP.NET ビューステートの最小サイズを指定できます。 viewstateしきい値。これより小さいビュー ステートはキャッシュされません。これにより、負荷の高いビューステートのみをキャッシュできるようになります。
  2. ASP.NETビュー状態とセッション状態をリンクする: ASP.NET ビュー状態をセッション状態にリンクできます (セッション付き期限切れビューステート)。これにより、ユーザー セッションの有効期限が切れると、すべてのビュー ステートがキャッシュから自動的に削除されます。
  3. ページレベルの最大カウントしきい値: FIFOを使用して、特定のページに対して保持するビューステートの数を設定できます。これにより、そのページに新しいビューステートが作成されるたびに、最も古いビューステートが削除されます。これにより、不要なビューステートの保存が回避され、キャッシュサーバーのメモリ消費が最適化されます。
  4. セッションレベルの最大カウントしきい値: ページレベルと同様に、ユーザーセッションの最大ビュー状態数をFIFO方式で指定することができます。 セッションあたりの最大ビューステート数。 このように、新しいビューステートが作成されるたびに、最も古いビューステートが削除されます。
  5. ページレベルおよびセッションレベルの設定: 上記のすべての設定をページごとに異なる方法で指定することも、すべてのセッションに共通に保つこともできます。

製品概要

あなたが見たように、 NCache この機能を使用すると、サーバー上で ASP.NET ビューの状態をキャッシュして、ASP.NET のパフォーマンスを最適化できます。また、キャッシュ内で ASP.NET ビューの状態をより効率的に管理するための豊富な機能も提供されます。これにより、複雑なアプリケーションを開発し、これらの機能を使用してさまざまなシナリオに対応できます。

次はどうする?

お問い合わせ

電話

+1 214-619-2601 (米国)

+44 20 7993 8327 (英国)

©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。