I'm using NHibernate 2.1.2
via Castl ActiveRecord. I wanted to set up second level cache using SysCache
. But I got error:
Unable to cast object of type 'NHibernate.Caches.SysCache.SysCacheProvider' to type 'NHibernate.Cach开发者_如何学JAVAe.ICacheProvider'.
How can I correct this?
I'm guessing that you have some assemblies locally in your project and others in the GAC which have a version mismatch as Mauricio is saying. Make sure that NHibernate.Caches.SysCache.dll is in your bin folder (for your website), is the correct version and check that you don't have it in the GAC.
I found the reason. It was a nasty problem from ours. My team have merged all Castle ActiveRecord related assemblies together with ilmerge.exe
and suppose named it Company.NHibernate.dll
. I have not merged NHibernate.Caches.SysCache.dll
with Company.NHibernate.dll
. I have just put NHibernate.Caches.SysCache.dll
alongside of Company.NHibernate.dll
and mentioned name of NHibernate.Caches.SysCache
in provider_class
.
When I merged NHibernate.Caches.SysCache.dll
with Company.NHibernate.dll
and mentioned name of Company.NHibernate.dll
in provider_class
instead, everything went OK.
Thanks all users that tried to help me.
精彩评论