Ошибка реализации NHibernate на веб-сайте ASP.NET - PullRequest
4 голосов
/ 15 августа 2011

Я пытаюсь внедрить NHibernate в свое веб-приложение.Я сталкиваюсь с ошибкой, которая говорит:

Метод 'IsInstrumented' в типе 'NHibernate.ByteCode.Castle.ProxyFactoryFactory' из сборки 'NHibernate.ByteCode.Castle, Version = 2.1.2.4000, Culture = нейтральный,
PublicKeyToken = aa95f207798dfdb4 'не имеет реализации.

Кто-нибудь знает, как решить эту проблему?

1 Ответ

5 голосов
/ 15 августа 2011

Убедитесь, что у вас есть следующие dll, скопированные в выходную папку и загруженные с помощью w3wp.exe (если вы используете IIS):

  • NHibernate.ByteCode.Castle.dll
  • Castle.Core.dll
  • NHibernate.dll
  • Iesi.Collections.dll
  • log4net.dll

И ваша конфигурация NHibernate имеет следующую строку:

<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>

Как вариант, вы можете попробовать обновить его до последней версии NHibernate - 3.2. У них есть встроенный прокси-генератор, так что это должно быть проще для вас. Вам не понадобятся эти дополнительные библиотеки. Просто удалите строку конфигурации выше, если вы используете NHibernate 3.2.

Если по каким-либо причинам вы не можете выполнить обновление до 3.2, вы можете рассмотреть возможность использования различных поставщиков байт-кода . NHibernate поддерживает 3 из них из коробки. Попробуйте LinFu или Spring:

  • NHibernate.ByteCode.Castle.ProxyFactoryFactory
  • NHibernate.ByteCode.LinFu.ProxyFactoryFactory
  • NHibernate.ByteCode.Spring.ProxyFactoryFactor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...