質問

あるasp.net Webアプリケーションの出力キャッシュを別のasp.net Webアプリケーション内からクリアすることは可能ですか?

理由:...いくつかのwepアプリケーションが次のように構成されています...

/ area1 /および/ area2 /のページはキャッシュされ、/ intranet / cms /を介して管理されます。 / intranet / cms /を使用してページを編集するとき、適切な/ area#/アプリケーションのキャッシュからページをクリアします。

すでにHttpContext.Cacheに保存されているGUIDを検索するVaryByCustomを使用しようとしましたが、Webアプリケーションごとにキャッシュされているようで、動作しません。

単一のサーバー上のWebアプリケーション間でデータを渡す方法があれば、それを使用してVaryByCustomを使用できるため、問題を解決できます。

ありがとう!

-マイクトーマス

役に立ちましたか?

解決

過去にこれを行った方法は、「非表示」を使用することです。フラッシュ、リロードなどを行うページ(各 / areaX サイト内)。ページは、(DoS攻撃を回避するために)何かを行う前に共有秘密クエリパラメータを検証します。有効な場合、ページは「OK」を出力します。操作が完了するとメッセージが表示されます。シークレットが無効な場合、404エラーを生成します。

フラッシュをアイテムごとまたはグループごとに行う場合は、そのアイテム/グループを識別する2番目のパラメーターを追加します。

この方法もサーバーテクノロジーに依存せず、必要に応じて他の管理ツールによってトリガーできます。

他のヒント

これを行う方法の1つは、共有リソースを依存関係、通常はファイルとして使用することです。ファイルが変更されると、キャッシュはクリアされます。 HttpResponse.AddFileDependency を使用できると思いますこれのために。

ただし、これらのケースでは、通常 memcached 。私自身はテストしていませんが、このリンク OutputCacheでmemcachedを使用する方法。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top