2009-07-27 12 views
1

私は、HTMLメニューを構築するSharePointサイト用のユーザーコントロールを作成しました。これはマスターページに挿入されており、それを使用するすべてのページでレンダリングが終了します。このHTMLを生成している間にかなり計算コストの高い呼び出しが行われており、キャッシュはページロードを賢明に保つための論理的選択です。これまでHttpRuntime Cacheはこれまで完全に機能していました。SharePointでセッション状態を保存するためのオプション

これで、このユーザーコントロールのバージョン1.1がリリースされました。メニューのユーザーごとのカスタマイズを可能にするために、新しい要件が盛り込まれました。私はもはや盲目的にHttpRuntime Cacheオブジェクトを使用することができないという点を除いては問題ありません。少なくとも、ユーザーIDの前に置かずに、ユーザーを特定のものにする必要はありません。

理想的には、ASP.NETセッションコレクションを使用してユーザー固有のコードを格納できるようにしたいと考えています。私は確かに、ユーザーがアクティブでなくても、キャッシュにぶら下がっている必要はありません。これは実際にはセッション固有のデータです。 ViewStateやセッション管理を有効にするなど、いくつかのオプションを検討しました(デフォルトでは​​では無効になっています)。しかし、私は本当にそれらのいずれかに満足しているわけではありません。

私の質問は次のとおりです。このような出力をユーザー単位でどのようにキャッシングする必要がありますか?今、私の最善の策は、自分のユーザーIDをキャッシュキーに入れて、スライドの有効期限を与えることです。

+5

私はあなたがセッション状態をあまりにも真剣に有効にすることによるパフォーマンスの影響を受けていると思います。セッションの使用に関するこの「終わ​​りの日」のビューを描く1つの意見に頼るのではなく、パフォーマンステストを行い、特定のサイトへの影響を測定する必要があります。このリンクされた例では、「なぜ必要ないサイトでセッションを有効にするのはなぜですか?あなたがいくつかのページにメニューを表示しない限り、それはすべてのページに必要です。テストし、自分自身の影響を判断する。最小限に抑える必要があります。 –

+1

@日産ファン:あなたはこれを答えにする必要があります。 –

答えて

2

それは私がリンクを提供「日の終わり」がSPS2003ないMOSS2007に関連していると考えていることを指摘する価値がある - Asp.NetにMOSSの統合私の知る限りで述べた問題は、MOSSでの問題ではないことを意味します。

+0

Nissan Fanによって残されたコメントに最も近いので、この回答を受け入れると、同様のことが言えます。 – Goyuix

1

カスタムWebパーツとページ用にかなり大きなMOSS 2007デプロイメント(1000人以上のユーザー)でViewStateを使用していますが、デプロイメントのパフォーマンスに全く影響を与えませんでした。

ちょうどそれを使用してください、私の助言です。

関連する問題