私たちは顧客志向のウェブサイトと管理者のウェブサイトからなるNHibernate asp.netアプリケーションの第2レベルキャッシュとしてappfabricを使用しています。それらは両方とも同じキャッシュに接続されているので、管理者が何かを更新すると、顧客が直面しているサイトが更新されます。AppFabricキャッシングのローカルキャッシュが私たちのために働いていません...どうしたのですか?
私たちは別々のサーバにCacheCLusterを持っていますが、すべてはうまくいきますが、localcacheがより良いパフォーマンスを得ることを可能にしたいのですが、それは動作しているようです。
我々はこのようにそれを有効にしている...
bool UseLocalCache =
int LocalCacheObjectCount = int.MaxValue;
TimeSpan LocalCacheDefaultTimeout = TimeSpan.FromMinutes(3);
DataCacheLocalCacheInvalidationPolicy LocalCacheInvalidationPolicy = DataCacheLocalCacheInvalidationPolicy.TimeoutBased;
if (UseLocalCache)
{
configuration.LocalCacheProperties =
new DataCacheLocalCacheProperties(
LocalCacheObjectCount,
LocalCacheDefaultTimeout,
LocalCacheInvalidationPolicy
);
// configuration.NotificationProperties = new DataCacheNotificationProperties(500, TimeSpan.FromSeconds(300));
}
は当初、我々はタイムアウト無効化ポリシー(3mins)を使用してみました、それはより速く走っていたように私たちのアプリは感じました。しかし、我々は、管理サイトで何かを変更した場合、それは現場で更新されたものであることに気づいた。通知ではなくタイムアウトを使用しているので、これはローカルキャッシュが照会されていない(または存在しているが、常に欠落している)ことを示しています。
cache.GetType()。Nameは "LocalCache"を返します。したがって、ファクトリはローカルキャッシュを作成しています。
私の開発環境(vs2008からローカルで実行されているasp.netアプリ、別個のw2k8マシンで実行されているキャッシュクラスタ)のPSで「Get-Cache-Statistics MyCache」を実行すると、ただし、本番環境では、Request Countが大幅に増加します。
ここでは、キャッシュcliebt-serverトラフィックを確認するための方法を試しました... http://blogs.msdn.com/b/appfabriccat/archive/2010/09/20/appfabric-cache-peeking-into-client-amp-server-wcf-communication.aspxしかし、ログファイルには最初のヘッダーだけが含まれています。
私はSOやGoogleで何かを見つけることができません。
何か間違ったことはありますか?私たちはAppFabricをインストールしたことがありますか?それをWebPlatformインストーラ経由でインストールしましたか? (注:ASp.netを実行しているIISボックスは、クラスタ内にありません。単にクライアントにすぎません)。
洞察力はすばらしいものでした。
申し訳ありませんが、NH ProfとNHProfを使用していますが、すべてがキャッシュヒットしていると言わざるを得ないと言わざるを得ないですが、私たちが持っているのは、キャッシュキャッシュではなくローカルキャッシュです。 mdcaadmintoolは、キャッシュクラスターで何が起こっているのかを教えてくれるだけでなく、asp.net w3wp.exeを使ってInProcになるローカルキャッシュではなく、私たちを助けてくれません。あなたの考えをありがとう。 – Olly