背景
我有一个使用NHibernate的BLL DLL。我在客户端应用程序和WCF服务之间共享相同的BLL(即使客户端在另一台机器上运行)。
我可以成功使用带有客户端应用程序的BLL的SqlServerCe或SqlServer驱动程序,但只能使用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);
备注
问题
您如何尝试确定为什么NHibernate无法加载SqlServerCe框架?
您将尝试并准确地确定问题进行哪些取证分析,以便您可以找到解决问题的方法?
更新1
包含它是我的代码我刚刚创建了一个简单的网站,并且能够成功使用ORM使用SDF数据库的硬编码路径插入和检索记录。如果我为webservice使用相同的hibernate配置文件,则会生成异常。这确实将问题缩小到了WCF实现。
答案 0 :(得分:0)
好吧,清除ASP.NET临时缓存没有做任何事情,删除和重新发布我的网站什么也没做,但是在Windows 2003 R2 SP2操作系统上恢复到虚拟机快照了!
更新或我自己必须对导致问题的操作系统做了一些事情。
我现在有一个不同的问题,因为SQL没有在环境下成功运行,但至少NHibernate驱动程序正在加载并运行这个问题。
更新:是的,我只能让NHibernate与SQL Server交谈,这对webservice端点来说很好。我们将在稍后阶段调查这些问题。将此答案标记为正确答案,因为没有添加其他评论。