2009-09-27 63 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服務端點來說很好。我們將在稍後階段調查問題。將此答案標記爲正確答案,因爲沒有添加其他評論。