NHibernate无法加载代理工厂

时间:2009-12-16 09:45:06

标签: nhibernate exception visual-studio-2005 proxy

我很想尝试运行一个简单的NHibernate应用程序。我正在一步一步地“开始使用NHibernate”。 首先,我得到了一个无效的属性错误(设法修复它)。

现在,我得到一个例外:

无法加载类型'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle' 在配置代理工厂类时。

可能的原因是: - 未部署NHibernate.Bytecode提供程序程序集。 - 用于初始化session-factory部分的'proxyfactory.factory_class'属性的typeName格式不正确。

解决方案: 确认您的部署文件夹包含以下程序集之一: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll“

提到的文件位于QuickStart.dll所在的Bin文件夹中。 我不知道为什么会这样! 我今天花了几个小时试图让这个工作起来。 SO(Unable to load type ‘NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu’)的问题没有帮助:(

来自Web.config的hibernate配置:

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
    <session-factory>
        <property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
        <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        <property name="connection.connection_string">Server=(local);initial catalog=quickstart;Integrated Security=SSPI</property>
        <property name="connection.isolation">ReadCommitted</property>
        <property name="default_schema">Monitor.dbo</property>
        <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
        <!-- HBM Mapping Files -->
        <mapping assembly="QuickStart"/>
    </session-factory>
</hibernate-configuration>

1 个答案:

答案 0 :(得分:1)

由于您的配置文件将NHiberante配置为使用Castle动态代理,因此您需要在bin文件夹中使用NHibernate.ByteCode.Castle.dll,确保在应用程序中引用此dll并将其复制到项目输出路径。

如果您的问题仍然存在,请启用融合日志并检查NHibernate在哪里查找dll。