在ASP.NET网站中实现NHibernate时出错

时间:2011-08-14 20:49:29

标签: nhibernate

我正在尝试将NHibernate实现到我的Web App中。我遇到一个错误,说:

  

'NHibernate.ByteCode.Castle.ProxyFactoryFactory'类型中的方法'IsInstrumented'   来自汇编'NHibernate.ByteCode.Castle,Version = 2.1.2.4000,Culture = neutral,
  PublicKeyToken = aa95f207798dfdb4'没有实现。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

确保将以下dll复制到输出文件夹并通过w3wp.exe复制到loaded(如果使用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。他们有一个内置的代理生成器,所以它应该更简单。你不需要这些额外的dll。如果你使用NHibernate 3.2,只需删除上面的配置行。

如果由于某些原因无法升级到3.2,您可以考虑使用不同的byte code providers。 NHibernate支持其中3个开箱即用。试试LinFu或Spring:

  • NHibernate.ByteCode.Castle.ProxyFactoryFactory
  • NHibernate.ByteCode.LinFu.ProxyFactoryFactory
  • NHibernate.ByteCode.Spring.ProxyFactoryFactor