2011-09-05 11 views
5

私のWebアプリケーションには、Page.Cacheに格納されているいくつかの事前計算された値があります。彼の瞬間、私はこの機能をwebserviceに移さなければなりません。Webサービスでキャッシュを使用することはできますか?

ウェブサービスに似た機能を導入する必要があります。最初のWebメソッド呼び出し時の値を計算し、キャッシュに保存します。
webserviceからキャッシュにいくつかの値を入れることはできますか(アプリケーションやセッションではなく、それらの値を一定時間間隔で削除する必要がありますか)?

+0

「アプリケーションまたはセッションにはありません」を使用したいキャッシュは、新しいものですか? – TheCodeKing

+0

あなたが以下の回答に見られるように、古い「キャッシュ」と呼ばれるものがあります:) –

+0

あなたの質問があれば、あなたの要件が何であったかを試してみてください。ランタイムキャッシュがあります。また、独自のキャッシュを作成することもできます。コールバックの有効期限を使用することもできます。 – TheCodeKing

答えて

7

現時点ではHttpContextを持っていなくても、静的なHttpRuntime.Cacheプロパティを通じてキャッシュにいつでもアクセスできます。

+0

最も簡単な方法 - それは私が探していたものです。 –

5

要するに、Webサービスでキャッシュを使用できます。サービス実装に基づいて正しいキャッシュ実装を選択する必要があります。たとえば、ASP.NET Webサービスを使用している場合、HttpContext.Current.Cacheで利用可能なASP.NET Cacheをおそらく使用できます。

WCF Webサービスを使用している場合は、他のライブラリ(BTW、ASP.NET Webサービスは廃止されているため、WCF Webサービスを提案します)を使用する必要があります。 WCFサービスがASP.NETと互換性があるとマークされている場合、ASP.NETインフラストラクチャとそのキャッシュが利用可能になります。 ASP.NET統合を使用しないでWCFサービスをホストする選択肢があります。そのような場合、.NET 4を使用している場合は、おそらく別のキャッシングAPI(たとえばSystem.Runtime.Caching)を参照する必要があります(quick tutorial参照)キャッシュ)さもなければ、Caching Application Blockを試してみてください。

2

あなたは使用することができるはずです。

HttpContext.Current.Cache.Insert(strName, objItem, null, 
    DateTime.Now.AddMinutes(intMinutes), Cache.NoSlidingExpiration) 

を指定した時間間隔でアイテムをキャッシュします。

1

は、少し古いが良い記事のようですXML Web Service Caching Strategies

を参照してください。私はあなたが探しているものを見つけることができることを願っています。

関連する問題