【问题标题】:Error implementing NHibernate in an ASP.NET Website在 ASP.NET 网站中实现 NHibernate 时出错
【发布时间】:2011-08-14 20:49:29
【问题描述】:

我正在尝试在我的 Web 应用程序中实现 NHibernate。我遇到一个错误,上面写着:

“NHibernate.ByteCode.Castle.ProxyFactoryFactory”类型中的方法“IsInstrumented” 从程序集'NHibernate.ByteCode.Castle,版本=2.1.2.4000,文化=中性,
PublicKeyToken=aa95f207798dfdb4' 没有实现。

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

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    确保您已通过 w3wp.exe 将以下 dll 复制到输出文件夹和 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

    【讨论】:

    • 我发现在 nhibernate 3.2 中有 defaultproxyfactory。它是什么?是临府还是城堡?我需要使用 Castle,因为我可能也需要 Windsor 和 NserviceBus
    • @TJ:使用 Castle 和 NServiceBus 不应干扰带有内置字节码提供程序的 NHibernate 3.2。
    猜你喜欢
    • 2022-01-25
    • 1970-01-01
    • 2014-02-23
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多