背景NHibernate的,WCF和SqlServerCE - 抛出异常加载驱动
我有一个使用NHibernate的一个BLL DLL。我在客户端应用程序和WCF服务之间共享相同的BLL(即使客户端在另一台机器上运行)。
我可以成功地使用两种SqlServerCe或SqlServer的驱动程序与BLL与客户端应用程序,但只能使用SQLServer的驱动程序的WCF。
如果我改变hibernate.cfg.xml中使用SQL Server我能够与被抛出没有例外需要使用该服务。
的错误
从log4net的输出确切的错误是:
2421, 5, DEBUG, NHibernate.Connection.DriverConnectionProvider, (null),Obtaining IDbConnection from Driver
2483, 5, DEBUG, NHibernate.Connection.DriverConnectionProvider, (null),Exception thrown obtaining connection: Exception has been thrown by the target of an invocation.
我也有我的WCF的代码下面的代码隐藏文件:
AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true);
NOTES
- WCF bin目录包含所有必需的DLL对NHibernate和SqlServerCe
- 如果System.Data.SqlServerCe.dll是在GAC
- 如果System.Data.SqlServerCe.dll加到没关系没关系在组件
- 操作系统web.config文件是在Windows Server 2003 R2 SP2
- 的.NET Framework 3.5SP1安装
- Visual Studio 2008的安装
- 只是柜面,我卸载任何与紧凑Ë dition但是这仍然没有解决问题
问题
你如何尝试,并找出原因的NHibernate无法加载SqlServerCe框架?
什么法医分析,您将执行,试图准确地判断问题,以便您可以然后找到解决它的方法吗?
更新1
柜面这是我的代码,我只是创建了一个简单的网站,我能成功使用ORM插入和检索使用硬编码路径SDF数据库记录。如果我为web服务使用相同的hibernate配置文件,则会生成异常。这确实缩小了WCF实施的问题。