背景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實施的問題。