我通过Castl ActiveRecord使用NHibernate 2.1.2
。我想使用SysCache
设置二级缓存。但我得到了错误:
无法将'NHibernate.Caches.SysCache.SysCacheProvider'类型的对象强制转换为'NHibernate.Cache.ICacheProvider'。
我该如何纠正?
答案 0 :(得分:1)
我猜你的项目中有一些本地程序集,而GAC中的其他程序集正如Mauricio所说的版本不匹配。确保NHibernate.Caches.SysCache.dll位于您的bin文件夹中(对于您的网站),版本是否正确,并检查您是否在GAC中没有它。
答案 1 :(得分:0)
我找到了原因。这是我们的一个令人讨厌的问题。我的团队已将所有Castle ActiveRecord相关程序集与ilmerge.exe
合并,并假设将其命名为Company.NHibernate.dll
。我尚未将NHibernate.Caches.SysCache.dll
与Company.NHibernate.dll
合并。我刚刚将NHibernate.Caches.SysCache.dll
放在Company.NHibernate.dll
旁边,并在NHibernate.Caches.SysCache
中提到provider_class
的名称。
当我将NHibernate.Caches.SysCache.dll
与Company.NHibernate.dll
合并并在Company.NHibernate.dll
中提到provider_class
的名称时,一切都很顺利。
感谢所有试图帮助我的用户。