2010-08-25 69 views
0

我有一個類庫做我所有的NHibernate的東西。它還處理所有使用Fluent NHibernate的映射 - 無需部署映射文件。FluentNHibernate在Windows服務,但不是網站

該類庫被許多應用程序使用,包括在我的計算機上運行的Windows服務。雖然它在我的所有Web應用程序中都能正常工作,但Windows服務在嘗試使用NHibernate時會得到以下結果:

創建SessionFactory時使用了無效或不完整的配置。請參閱PotentialReasons集合和InnerException以獲取更多詳細信息。在C#中的Kctc.NHibernate.KctcSessionFactory.get_SessionFactory()中的線程28 ...

我檢查了一個InnerException,但似乎沒有一個。我不知道PotentialReasons收藏是什麼,Google似乎也沒有出現。

這是我的開發機器,所以當我在使用我的web應用程序時,他們在本地運行(即在Visual Studio中使用Web服務器)。 Windows服務和我的開發Web應用程序在同一臺計算機上運行這一事實表明,這不涉及信任設置或您有什麼。

任何人都可以提出我應該嘗試什麼?這是我非常難過的其中一個,我什至不能想到如何獲得關於這個問題的更多信息。

+0

你檢查了InnerException。那裏有關於你的錯誤的具體信息。 – devnull 2010-08-25 14:46:02

+0

是的。似乎沒有一個InnerException。 – David 2010-08-25 14:51:40

回答

0

我發現問題是什麼。該服務沒有部署所需的NHibernate.ByteCode.LinFu.dll。

我似乎有一個問題,即Visual Studio編譯器並不總是在構建過程中將間接依賴項(即應用程序所需的類庫所需的dll)複製到輸出文件夾中。我應該早點想到這一點。

感謝您代表我的代言人絞盡腦汁。

+0

我有與DLL和VS相同的問題。 – 2010-08-25 15:31:55

+0

感謝上帝!我並不孤單! – David 2010-08-25 16:06:28

0

只是瘋狂的猜測。 NHibernate從執行目錄中選取hibernate.cfg.xml文件。你配置了可以找到這個文件的服務的執行目錄嗎?

+0

恐怕我不明白這個問題。我沒有使用FluentNHibernate的配置文件。你如何配置'執行目錄'? – David 2010-08-25 13:48:34

0

我敢打賭,app.config中缺少連接字符串的名稱。對我來說,這個消息幾乎完全是一個缺失的連接字符串

你是針對相同的數據庫還是它可能是某種數據庫之間的模式不匹配?

它可能是服務上的身份驗證問題,如您使用Windows身份驗證在哪裏不能使用(或SQL身份驗證不起作用)?

很難說什麼時候沒有代碼,只是一個例外!

編輯你曾經使用過HttpContext,HostingEnvironment或其他特定於「web」的東西嗎?

+0

可悲的是它在那裏。我知道基本的ADO.NET的東西工作,因爲我仍然有服務中運行的前NHibernate數據訪問代碼。但謝謝你的問候! – David 2010-08-25 13:49:36

+0

增加了一些問題。你不給我們提供大量的信息大衛:) – mhenrixon 2010-08-25 14:05:40

+0

對不起,我不知道該怎麼提供,因爲我很困難。它與現場系統是相同的數據庫。類庫不要求任何認證。我沒有提供配置代碼,因爲它適用於web應用程序,所以肯定它一定沒問題?請讓我知道您希望我發佈的內容。 – David 2010-08-25 14:45:14

相關問題