我使用AppFabric作爲NHibernate 2L緩存提供程序。NHibernate + AppFabric緩存
我已經安裝AppFabric的緩存服務,從默認配置一個高速緩存集羣和一個額外的緩存分開:
<dataCache size="Small">
<caches>
<cache consistency="StrongConsistency" name="NHibernate">
<policy>
<eviction type="Lru" />
<expiration defaultTTL="10" isExpirable="true" />
</policy>
</cache>
<cache consistency="StrongConsistency" name="default">
<policy>
<eviction type="Lru" />
<expiration defaultTTL="10" isExpirable="true" />
</policy>
</cache>
</caches>
<hosts>
<host replicationPort="22236" arbitrationPort="22235" clusterPort="22234"
hostId="963417840" size="2047" leadHost="true" account="ZEUS\CATALINP"
cacheHostName="AppFabricCachingService" name="ZEUS"
cachePort="22233" />
</hosts>
</dataCache>
似乎一切都在高速緩存提供方確定。
緩存客戶端的配置,如使用的app.config,如下:
<dcacheClient localCache ="True" deployment="simple">
<localCache isEnabled="True" sync="TimeoutBased" ttlValue="300" />
<hosts>
<host name="ZEUS" cachePort="22233" cacheHostName="AppFabricCachingService"/>
</hosts>
</dcacheClient>
沒什麼特別的,只是常用的設置。
然而,當我運行applicacion,我可以看到在調試器的輸出如下:
DeadServerCallback調用,服務器URI: 的net.tcp:// ZEUS:22233/AppFabricCachingService DeadServerCallback: 匹配我的服務器,清潔掛起的申請SendMsgAndWait:遠程 存儲操作失敗:是msgId = 1 ExecuteAPI:響應是空,是msgId = 1
最後,應用程序崩潰,出現以下消息:
「ErrorCode:Cache :: Get:無法聯繫緩存 服務。請與管理員聯繫,並參考產品幫助文檔 可能的原因。」
緩存服務似乎是正確配置(我已經成功地通過PowerShell命令連接到它),NHibernate的配置似乎是正確的,以及,但NHibernate的無法連接到高速緩存服務。
有沒有人經歷類似?
謝謝
C.
東西
謝謝菲爾。我已經嘗試過Simon的項目,我成功地將條目中的條目加載到條件查詢中的L2緩存中,當我重新運行查詢時購買,Nhibernate命中數據庫而不是從緩存中讀取數據。有沒有人執行過西蒙項目的成功實施?謝謝你,C。 – user1140689 2012-01-12 08:27:07
它對我來說工作得很好 - 但後來我會說我不會; O)。請隨時通過我的博客與我聯繫,我會爲您進一步研究。 – s1mm0t 2012-01-12 15:19:05
謝謝西蒙。儘管我已經使其工作(配置文件缺少localCache部分,這是我的問題的原因),但我可能有一些問題了解如何一切正常。我很感謝你的承諾,我很快會給你寫一封更大的郵件。再次感謝你。 – user1140689 2012-01-16 09:09:59