2011-02-09 16 views
0

私はNHibernate 2.1.2をCastl ActiveRecord経由で使用しています。私はSysCacheを使って第2レベルのキャッシュを設定したかったのです。しかし、私はエラーが発生しました:タイプ 'NHibernate.Caches.SysCache.SysCacheProvider'のオブジェクトを 'NHibernate.Cache.ICacheProvider'にキャストできません

タイプ 'NHibernate.Cache.SysCache.SysCacheProvider'のオブジェクトを 'NHibernate.Cache.ICacheProvider'にキャストすることができません。

これを修正するにはどうすればよいですか?

+0

これは問題ではありません。私たちはこのプロバイダを問題なく使用しています。どのように設定しましたか? ActiveRecordFacilityを使用していますか? – jishi

+5

バージョンの不一致のように聞こえます。キャッシュ・プロバイダ・アセンブリがNHibernate 2.1.2のものであることを確認してください。 –

+0

@Mauricio:NHibernate 2.1.2.4000、Castle.ActiveRecord 2.1.2.6725およびNHibernate.Caches.SysCache 2.1.2.4000を使用しています。それは問題ですか? –

答えて

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.dllの名前をprovider_classにマージしたところ、すべて正常になりました。

私を助けようとしてくれたすべてのユーザーに感謝します。

1

Mauricioが言っているように、バージョンミスマッチがあるGACのプロジェクトや他のアセンブリでローカルにアセンブリがいくつかあると思います。 NHibernate.Caches.SysCache.dllがあなたのbinフォルダ(あなたのウェブサイト用)にあることを確認し、正しいバージョンであり、あなたがGACに持っていないことを確認してください。

関連する問題