我使用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无法连接到缓存服务。
有没有人经历过类似的事情?
谢谢,
下进行。
答案 0 :(得分:1)
NHibernate Velocity提供程序已损坏,无法与AppFabric一起使用。有关详细信息,请参阅this question,然后转到here了解s1mm0t的AppFabric提供商。