2012-11-28 24 views
1

我有一個Windows服務正在運行,當它嘗試連接數據庫時,我有一個異常:「底層提供程序在打開時失敗」。同樣的服務在Windows Server 2008 R2上運行良好,但在Windows7上無法運行在我的電腦上。Windows服務,底層提供程序在打開時失敗

我嘗試過集成安全性,沒有集成安全性,這是同樣的問題。

我試圖通過更改連接字符串連接Windows Server 2008 R2上的數據庫,但它不起作用。

該服務使用Visual Studio安裝(.vdproj),但我必須使用InstallShield LE 2012年春季

該數據庫使用的.NET MVC3項目和連接工作正常了同樣的錯誤。

如何解決此連接錯誤?

謝謝你的幫助。

+1

Windows服務是否在LOCAL SYSTEM帳戶下運行? 您可能希望將其更改爲NETWORK SERVICE帳戶,以便允許其通過網絡。同時檢查MSDTC服務安全設置。 – Madushan

+0

Windows防火牆是壞東西? (您的Server 2008 R2實例可能會使防火牆關閉,假設它位於DMZ上) – Madushan

+0

@Madushan是的,它在LOCAL SYSTEM帳戶下運行。 Windows服務和數據庫在同一臺機器上,我真的需要爲Network Service更改嗎? –

回答

3

Windows服務沒有足夠的權限來連接數據庫,因此我將角色「sysadmin」添加到NT AUTHORITY \ System用戶,並且異常消失!

謝謝Madushan的幫助:)

+0

將sa添加到系統用戶有點皺眉,因爲你幾乎允許每個作爲服務運行的軟件訪問數據庫而沒有任何限制。我建議您爲您的服務創建一個單獨的帳戶。 – Madushan

+0

@Madushan僅用於本地開發,我不在生產服務器上使用集成安全性 –

相關問題