Невозможно привести объект типа «NHibernate.Caches.SysCache.SysCacheProvider» к типу «NHibernate.Cache.ICacheProvider». - PullRequest
0 голосов
/ 09 февраля 2011

Я использую NHibernate 2.1.2 через Castl ActiveRecord.Я хотел настроить кэш второго уровня, используя SysCache.Но я получил ошибку:

Невозможно привести объект типа 'NHibernate.Caches.SysCache.SysCacheProvider' к типу 'NHibernate.Cache.ICacheProvider'.

Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Я предполагаю, что у вас есть некоторые сборки локально в вашем проекте и другие в GAC, которые имеют несоответствие версий, как говорит Маурисио.Убедитесь, что NHibernate.Caches.SysCache.dll находится в папке bin (для вашего веб-сайта), является правильной версией и убедитесь, что ее нет в GAC.

0 голосов
/ 12 февраля 2011

Я нашел причину.Это была неприятная проблема с нашей стороны.Моя команда объединила все сборки, связанные с 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 вместо этого все прошло нормально.

Спасибо всем пользователям, которые пытались мне помочь.

...