我必须处理已经开发的使用NHibernate(v1.2.1.4000)和SQL Server 2008的解决方案。
由于会员身份验证和其他内容,应用程序正在使用.NET Framework 2.0。
这在Visual Studio中运行 - 我可以调试它,运行。但在IIS(v8.0)中部署时失败
例外是:
装配体中的重复类型名称 HibernateException:创建代理实例失败。
每当获取数据库以获取某些模型时就会发生这种情况。
我已经搜索过这个问题并且有一些建议使用nhiberante(v3.3.x)。
但是v3中的大量接口和方法参数不同。所以它打破了源代码的实现。
有关此问题的几个问题存在于stackoverflow但尚无运气
答案 0 :(得分:0)
也许您遇到并发问题,例如单例初始化无法确保其初始化的唯一性,仅在负载下发生。
特别检查您的会话工厂。在构建日志时放置日志,检查它是否多次构建。如果尚未从那里触发,请尝试从Application_Start触发单例初始化。
避免单例延迟初始化,除非它们非常繁重,并且大多数应用程序HTTP请求都不需要。在这种情况下,请确保它们的逻辑是线程安全的,并避免运行并发初始化(类似LazyThreadSafetyMode
ExecutionAndPublication
而不是PublicationOnly
:它需要更严格的锁定但必须以这种方式来构建ISessionFactory
,如果是通过延迟初始化完成的。)