2009-09-27 64 views
0

背景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实施的问题。

回答

0

好,清除ASP.NET临时高速缓存并没有做任何事情,删除和重新发布我的网站做什么,但恢复到VM快照在Windows 2003 R2 SP2 O/S做到了!

更新或自己一定做了什么,以引起问题的OS。

我现在有一个不同的问题,因为SQL在环境下没有成功运行,但至少NHibernate驱动程序正在加载并且正在运行,并且这个问题要求运行。

更新:是的,我只能让NHibernate仍然和SQL Server交谈,这对web服务端点来说很好。我们将在稍后阶段调查问题。将此答案标记为正确答案,因为没有添加其他评论。