2011-01-28 13 views
3

Sharepoint Timer Jobを作成し、これをすべてのファームWebフロントエンドマシンで実行するように計画しています。Sharepoint Timer HTTPRuntime Cacheオブジェクトへのジョブとアクセス

タイマージョブは、SP SQL Serverインスタンスからデータを読み込んで、私たちが持っている2つのWeb FTEのHTTPRuntimeキャッシュオブジェクトに更新します。

質問がこれです、タイマージョブは、ASP.netキャッシュオブジェクトにアクセスするか、owstimer.exeから実行されているためではありませんか?

もしそうでなければ、2つのウェブフロントエンドでキャッシュ項目を更新するにはどうすればよいでしょうか?私は現在、IISサイトを別にアクセスするように設定していないことを言及する必要があります。私。ファームにアクセスするためのURLが1つあり、コンテンツスイッチはどのマシンがそれを取得するかを決定します。

でも可能ですか?

答えて

1

キャッシュに直接アクセスすることはできません。あなたのウェブサイトが実行されているアプリケーションプールとは異なるプロセスでジョブが実行されている時間。

間接的に行うこともできます。あなたのタイマージョブを聞き、ウェブサイトのキャッシュを更新する、あなたのウェブサイト上にシンプルなWebサービスを作成する方法が考えられます。

別のオプションは、他のプロセスからキャッシュにアクセスできるようにするプロジェクトであるmemcached for .NETを調べることです。

1

WFEからアクセスするには、HTTPランタイムキャッシュである必要はありません。あなたはおそらくリストにそれを格納することができますか?それがあまりにも重すぎたり、非効率的であったり、馬鹿げているとすれば、タイマージョブでSPWebApplicationのPropertiesハッシュテーブルにフラグを設定することで、キャッシュされたアイテムを取得(または無効化)するようにWFEに通知することができます。このハッシュテーブルは、DateTime、bool、string、intなどのプリミティブに限定されているため、アイテム自体の格納に使用できませんでした。

関連する問題