2011-02-09 89 views
0

我使用的是通过Castl ActiveRecord的NHibernate 2.1.2。我想使用SysCache设置二级缓存。但是我得到错误:无法投射'NHibernate.Caches.SysCache.SysCacheProvider'类型的对象来键入'NHibernate.Cache.ICacheProvider'

无法投射'NHibernate.Caches.SysCache.SysCacheProvider'类型的对象来键入'NHibernate.Cache.ICacheProvider'。

我该如何解决这个问题?

+0

这应该不成问题。我们正在使用该提供商,没有任何问题。你是如何配置它的?你在使用ActiveRecordFacility吗? – jishi 2011-02-09 13:31:28

回答

0

我找到了原因。这是我们的一个讨厌的问题。我的团队已将所有与Castle ActiveRecord相关的程序集与ilmerge.exe合并在一起,并假设将其命名为Company.NHibernate.dll。我还没有合并NHibernate.Caches.SysCache.dllCompany.NHibernate.dll。我刚刚将NHibernate.Caches.SysCache.dllCompany.NHibernate.dll并列,并提到NHibernate.Caches.SysCache的名称provider_class

当我合并NHibernate.Caches.SysCache.dllCompany.NHibernate.dll并提到名称Company.NHibernate.dllprovider_class而不是,一切正常。

感谢所有试图帮助我的用户。

1

我猜你在项目中有一些程序集,在GAC中有一些与Mauricio说的版本不匹配的程序集。确保NHibernate.Caches.SysCache.dll位于你的bin文件夹(对于你的网站),是正确的版本,并检查你没有在GAC中。

相关问题