2011-12-14 8 views
4

JSONデータを返すWCFを開発しています。メソッドはパラメータをとり、データベースからデータを返します。WCFでキャッシングを使用する方法

WCFの負荷が高い場合は、常にDBにアクセスする必要がないように、キャッシュを使用することは素晴らしいことです。

編集: このメソッドは最近のアイテムを返します。したがって、メソッドは、パラメータとして同じ時間間隔を提供するすべての要求に対して同じ応答を返す必要があります。

これはどのように効率的に行うことができますか?私は基本的なWeb HTTPサービスキャッシングについてのお話を読んだことがありますが、これが最善の解決策であるかどうかはわかりません。

ありがとうございます。

+1

http://msdn.microsoft.com/en-us/library/ee230443.aspx –

+0

: )。パラメータが同じなら、応答は同じです...私は投稿を編集します。 – johan

答えて

1

個人的には、私は自分のWCFサービスをセッション準備完了状態にして、キャッシュをセッションに保存するのが好きです。トレードオフは、データの静的な状態とプルダウンする必要のあるデータ量の間にあります。

非常に静的なデータの場合、セッションの長さ、またはデータが変更されるまで(別のユーザーがセッションのキャッシュデータを変更したかどうかを判断するまで)別のストーリーにキャッシュできます。非常に動的なデータの場合、私のキャッシュを数分以上信頼するのは難しいと思います(まだ完全に安全ではありません)。

質問はありますか、クライアントサイドキャッシングかサーバーサイドキャッシングについて話していますか?つまり、クライアント上にデータセットをキャッシュするか、データベースサーバーからデータセットを取得したWebサーバーにキャッシュするだけですか?

クライアントのキャッシュについては、Cookieをキャッシュしたり、JavaScript変数でキャッシュしたり、httpキャッシュを使用したり、前述のHTML 5アプリケーションのキャッシュメカニズムを使用したりすることができます。

これは、しかし、この場合にはハンマーがない仕事のための適切なツールについてのすべてです。)もちろん

+0

私はサーバー側でキャッシュする必要があります。 – johan

+0

その場合、私はセッションでキャッシュすることを好む。 WCFサービスのセッションを使用するには、WebHttpの動作が必要ですが、それ以外はかなり簡単です。 –

0

あなたはHTTPキャッシュコントロールを使用できます。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

またはHTML 5アプリケーションキャッシュ: http://www.html5rocks.com/en/tutorials/appcache/beginner/

クライアントがWCFサービスを消費する方法は? jQuery AJAXリクエストを介して?標準のGETリクエスト?

+0

GETリクエスト。しかし、それはサイトからではなく、電話である可能性が高いからです。 – johan

+0

あなたはサービスの負荷をコントロールするために上記のいずれかの方法を使用することができます。 – Lloyd

関連する問題