2009-06-11 10 views
4

私は現在、大規模なWebサイトで作業しています。これは非常に動的なので、永続的に大量の情報をメモリに保存する必要がありますチェックアウトの設定、またはメニュー構造の実装に使用されるツリー)。ASP.net Webページのグローバルデータを保持

この情報はセッション固有ではなく、ウェブサイトを使用するすべてのスレッドで一貫しています。

このデータをASP内でグローバルに保持する最良の方法は、各使用時に再ロードするのではなく、必要なときにアクセスできるようにすることです。

答えて

1

AppSettingsweb.configは、automatically cachedです(使用する必要があるたびにXMLから読み取られません)。

また、手動でmanipulate the cache yourselfにすることもできます。

編集:ベター・リンク...

+0

私が知っている限り、AppSettingsは実際には適していません、私は製品のコレクション - >実際のオブジェクトのようなものを格納することを話しています。 –

+0

次に、私の答えの後半である –

+0

+1がキャッシュ機能に必要になるでしょう。 – Canavar

1

それはあなたの情報がセッション固有であるかどうか、正確には明らかではありません...場合ASPセッションオブジェクトを使用します。スケールのあなたの説明を考えると、あなたはおそらく、SQL Serverの状態を保存するを見てみたい:

http://support.microsoft.com/kb/317604

101アプローチだこと。あなたが何かのために少しドッシリを探しているなら、それから(つまり、MEM-キャッシュ・ディーと発音します)のmemcachedをチェックアウト:FacebookやTwitterなどのアプリ利用システムの

http://www.danga.com/memcached/

幸運を祈る!

0

私は通常、Applicationオブジェクトにそのようなものを保持します。

+0

その答え、おそらくいくつかの短いサンプルコードやまともなチュートリアルへのリンクをexapndできますか? –

1

ASP.NETキャッシング機能を使用するとよいと思います。 Johnの答えに加えて、マイクロソフトのパターン&プラクティスチームのCaching Application Blockを使用することができます。

0

ページが互いに依存しており、相互に投稿する場合は、ページのリクエストオブジェクトを使用できます。おそらく、あなたが探している答えではありませんが、間違いなく使用するメモリが最小のものです。

1

これは、アプリケーションの状態を保持するさまざまな方法を模索する良いビデオです。 http://www.asp.net/learn/3.5-videos/video-11.aspx すべてのユーザーに対して、アプリケーション全体のグローバルなApplicationオブジェクトをブラシし、ヒットカウンタを作成する方法を示します(オブジェクトを格納できる整数を格納するのではなく)。変更が必要な場合は、並行処理のためにロックを使用する必要があります。データを大量に処理する方法がわかりません。

0

私は過去に同じ状況に陥り、最もスケーラブルなソリューションであることがわかりました。アプリケーションキャッシュは今日の答えかもしれませんが、ニーズに合わせて拡張しますか?

スケールアップする必要がある場合は、クッキー、または一時データベースの種類のストレージを見つけることができます。インターフェイスに新しいメソッドを追加し、web.configから「モード」を選択するようにインターフェイスを設定するだけです。

関連する問題