Asp.net mvc 错误消息不在开发中,而是在使用NHibernate版本2.1.1.4000的部署中

Asp.net mvc 错误消息不在开发中,而是在使用NHibernate版本2.1.1.4000的部署中,asp.net-mvc,nhibernate,Asp.net Mvc,Nhibernate,我看了一眼 在部署后运行单元测试时,我也会收到相同的错误消息,但是我的应用程序运行良好。即使在开发过程中,我也没有任何这样的错误 怎么了?为什么在运行单元测试时出现此错误消息 错误消息如下所示: NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException:未配置ProxyFactoryFactory。 使用可用的NHibernate.ByteCode提供程序之一初始化会话工厂配置节的“proxyfactory.factory\u类

我看了一眼

在部署后运行单元测试时,我也会收到相同的错误消息,但是我的应用程序运行良好。即使在开发过程中,我也没有任何这样的错误

怎么了?为什么在运行单元测试时出现此错误消息

错误消息如下所示:

NHibernate.Bytecode.ProxyFactoryFactoryNotConfiguredException:未配置ProxyFactoryFactory。 使用可用的NHibernate.ByteCode提供程序之一初始化会话工厂配置节的“proxyfactory.factory\u类”属性。 例子: NHibernate.ByteCode.LinFu.ProxyFactoryFactory,NHibernate.ByteCode.LinFu 例子: NHibernate.ByteCode.Castle.proxyFactory,NHibernate.ByteCode.Castle ]]> - - ]]>

连接字符串为web.config

> > <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.connection_string">Server=localhost\SQLServer2005;Database=testDev;</property>
>       <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory,
> NHibernate.ByteCode.Castle</property>
>     </session-factory>   </hibernate-configuration>
>
>     
>NHibernate.dialogue.mssql2000方言
>NHibernate.Connection.DriverConnectionProvider
>Server=localhost\SQLServer2005;数据库=testDev;
>NHibernate.ByteCode.Castle.proxyFactory,
>NHibernate.ByteCode.Castle
>        
dll是:


我有NHIbernate版本2.1.1.4000,我有NHIbernate.ByteCode.Castle版本2.1.1.4000,Castle.Core 1.1.0,Castle.dynamicProxy 2.dll版本2.1.1.0

您使用的是哪个版本的NHIbernate?版本3.2预先配置了代理工厂。如果使用此版本,则不再需要proxyfactory.factory\u类配置选项


此外,如果您的测试失败,但不是您的应用程序失败,那么测试可能无法访问正确的hibernate配置文件。如果您是以编程方式进行配置,请再次查看以验证是否设置了代理因子(如果使用NH<3.2)或未设置代理因子(如果使用NH>=3.2)

错误是什么?你能发布你的代码吗?我有NHIbernate版本2.1.1.4000,我有NHIbernate.ByteCode.Castle版本2.1.1.4000,Castle.Core 1.1.0,Castle.DynamicProxy 2.dll版本2.1.1.0你只有在测试运行时才会收到错误?仅在生产环境中还是在开发环境中?NHibernate是如何配置的?XML文件,还是以编程方式,还是两者的混合?请共享配置代码。我建议您使用NHibernate版本编辑问题以及我所问问题的答案。这样,其他人在阅读问题时就已经掌握了所有这些信息。但是,请对我的回答发表评论,说您已经编辑了您的问题,否则我将不会收到通知:)当测试仅在生产环境中运行时,我出现了错误。在dev中,它运行时没有任何错误消息。我在上面的问题部分提供了web.config的一部分。NHinernate是使用XML文件和编程方式配置的。您已经发布了web.config。对于网站,您可以在App_Start中运行初始化代码。对于单元测试,通常会指向一个单独的hibernate.cfg.xml文件,该文件包含测试特定的数据库详细信息。部署时,特定于测试的配置文件是否也会被复制?我想说的是,检查您的测试,看看测试从何处读取NHibernate配置信息。很可能它不是web.config。也就是说,验证所述文件(存在于您的开发人员机器上)是否也存在于您的生产机器上的相关路径中。在该文件的属性(在VS中)下,验证
Copy Local
是否设置为True。这可能有助于将文件转移到部署服务器。