NHibernate + AppFabric缓存

时间:2012-01-10 11:09:12

标签: nhibernate appfabric

我使用AppFabric作为NHibernate 2L缓存提供程序。

我已经安装了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无法连接到缓存服务。

有没有人经历过类似的事情?

谢谢,

下进行。

1 个答案:

答案 0 :(得分:1)

NHibernate Velocity提供程序已损坏,无法与AppFabric一起使用。有关详细信息,请参阅this question,然后转到here了解s1mm0t的AppFabric提供商。