NHibernate - 创建代理实例失败(在IIS8上但是使用dev服务器确定)

时间:2016-03-07 09:23:55

标签: c# iis nhibernate .net-2.0

我必须处理已经开发的使用NHibernate(v1.2.1.4000)和SQL Server 2008的解决方案。

由于会员身份验证和其他内容,应用程序正在使用.NET Framework 2.0。

这在Visual Studio中运行 - 我可以调试它,运行。但在IIS(v8.0)中部署时失败

例外是:

  

装配体中的重复类型名称   HibernateException:创建代理实例失败。

每当获取数据库以获取某些模型时就会发生这种情况。

我已经搜索过这个问题并且有一些建议使用nhiberante(v3.3.x)。

但是v3中的大量接口和方法参数不同。所以它打破了源代码的实现。

有关此问题的几个问题存在于stackoverflow但尚无运气

1 个答案:

答案 0 :(得分:0)

也许您遇到并发问题,例如单例初始化无法确保其初始化的唯一性,仅在负载下发生。

特别检查您的会话工厂。在构建日志时放置日志,检查它是否多次构建。如果尚未从那里触发,请尝试从Application_Start触发单例初始化。

避免单例延迟初始化,除非它们非常繁重,并且大多数应用程序HTTP请求都不需要。在这种情况下,请确保它们的逻辑是线程安全的,并避免运行并发初始化(类似LazyThreadSafetyMode ExecutionAndPublication而不是PublicationOnly:它需要更严格的锁定但必须以这种方式来构建ISessionFactory,如果是通过延迟初始化完成的。)