我創建了一個Windows服務爲我管理一些文件。爲了進行調試,我編寫了一個控制檯入口點,所以我的實際服務代碼與windows服務是分開的一個類。我使用的是的SQLite DB用流利的NHibernate的到存儲設置等Windows服務沒有看到文件
當我運行控制檯模式,它完美的作品,但嘗試啓動它不會進程時。我在開始進行調試時發現,當NHibernate嘗試創建會話時,即使它存在,它也不能看到數據庫文件。
我已經設置了以管理員身份運行的進程,並且還嘗試將其作爲啓用了「Allow access to desktop
」的本地系統帳戶運行,但仍不會拾取數據庫文件。這意味着NHibernate無法加載文件,因此它會創建一個新文件,並且當我的服務試圖從數據庫加載數據時,它會失敗,因爲它加載了空白數據庫文件。
配置文件是否在正確的位置?是否存在權限問題,例如,從控制檯和服務中的本地用戶以管理員身份運行? –
您是否檢查服務運行的用戶?默認情況下,服務與特殊的服務用戶一起運行(不過您可以指定一個不同的服務)。如果它作爲服務用戶運行,則該用戶可能對該文件沒有足夠的訪問權限。 – Zarat
不要勾選「允許訪問桌面」。第一步是告訴我們該服務運行的用戶是什麼。 –