4

私のASP.NETアプリケーションは、高価な(ロードするための)データをアプリケーションがアクセス可能なstaticフィールドに格納します(この場合、使用System.Web.Caching.Cacheは不適切です)。

私のアプリケーションは、別のマシン上の中央のSQL Serverを使用して、いくつかのWebサーバー間で負荷分散されています。

このキャッシュが無効になる場合があります。ユーザーが更新されたデータを送信するとServer01、そのアプリケーションは、データベースにデータを送信するときにローカルキャッシュをクリアできることを認識しています。

ただし、この変更をServer01通知して、のキャッシュが無効になるようにするにはどうすればよいですか?Server02Server02

Webファーム通信用のASP.NETに組み込まれているサーバー間IPCを認識していませんhttp://mysite/InvalidateCache。他のサーバーから呼び出される、アプリケーション(たとえば)にURIハンドラーを作成する必要があるようです。しかし、それは少しハックっぽいようです。もっと良い方法はありますか?

4

2 に答える 2

3

私は少し頭を悩ませていましたが、Webサーバーは相互に要求を送信するだけで相互に通信できることに気付きました。特別なサイドチャネル回線は必要ありません。私は以前にこのアイデアをハックと呼んでいましたが、理論的には正しいと思います。

明らかに、セキュリティ上の理由から、これらのリクエストは物理的なプライベートネットワーク接続を経由するか、暗号で署名されたリクエストを持っている必要がありますが、私は今、そのアプローチに何も悪いことは考えられません。

于 2013-03-25T08:39:36.280 に答える
1

AppFabricのような分散キャッシュを検討することをお勧めします。http://msdn.microsoft.com/en-us/library/ff383731(v=azure.10).aspx

于 2013-03-17T04:28:59.517 に答える