我們使用appfabric作爲包含面向客戶的網站和管理網站的NHibernate asp.net應用程序的第二級緩存。它們都連接到相同的緩存,所以當管理員更新某些內容時,面向客戶的網站會更新。AppFabric緩存的本地緩存不適用於我們...我們做錯了什麼?
它似乎工作正常 - 我們在單獨的服務器上有一個CacheCLuster,一切正常,但我們希望啓用localcache以獲得更好的性能,但是,dosnt似乎正在工作。
我們已經啓用,像這樣...
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 Counts。但是,在生產環境中,請求計數增加顯着。
我們試着按照這裏的方法來選擇緩存cliebt-server的流量...... http://blogs.msdn.com/b/appfabriccat/archive/2010/09/20/appfabric-cache-peeking-into-client-amp-server-wcf-communication.aspx但是日誌文件只有最初的頭文件 - 也就是說沒有任何的loggin。
我在SO或Google找不到任何東西。
我們做錯了什麼?我們是否安裝了AppFabric?我們是通過WebPlatform Installer安裝的 - 我想? (注意:運行ASp.net的IIS框不在yhe集羣中 - 它只是客戶端)。
任何洞察力很好地收到!
對不起,我應該說,是的,我們已經使用NH教授和NHProf是說,一切都是一個緩存命中 - 但我們有porblme是它似乎打到緩存集羣而不是本地緩存。 mdcaadmintool並沒有幫助我們,因爲它只會告訴我們緩存集羣中發生了什麼 - 而不是本地緩存,這將是我們的asp.net w3wp.exe的InProc。謝謝你的想法。 – Olly 2011-01-10 19:10:04