2017-08-11 59 views
0

嗨,我已經寫了一個Windows服務在C#爲了連接到數據庫每10分鐘與entityframework它在調試模式下工作正常,但是當我釋放並安裝它本地系統帳戶引發異常:在C#中的窗口服務 - 底層提供商在開放失敗

底層提供程序在打開時失敗。 無法打開登錄請求的數據庫「HCClient」。登錄失敗。 用戶'NT AUTHORITY \ SYSTEM'登錄失敗。

我的ConnectionString:

添加名稱= 「MyDataBaseName」 的connectionString =「元數據= RES:// /Model.LocalModel.csdl|res:// /Model.LocalModel.ssdl | res://*/Model.LocalModel.msl; provider = System.Data.SqlClient; provider connection string = " data source = .; initial catalog = HCClient; integrated security = True; MultipleActiveResultSets = True; App = EntityFramework "「providerName =「System.Data.EntityClient」

當我想啓動服務本地服務或網絡服務時,它返回我錯誤5:訪問被拒絕,雖然我已將這些權限之一給我的可執行服務exe文件 我已閱讀與我的錯誤相關的所有主題,但沒有他們的工作

任何幫助,將不勝感激

+0

如何創建SQL登錄和使用該連接字符串中? –

+0

您必須將集成安全性設置爲true才能嘗試使用運行服務的帳戶標識的連接字符串。在連接字符串中可以訪問數據庫的同一帳戶下運行服務或使用SQL身份驗證。 – vendettamit

回答

1

你的服務正在運行的System用戶這不(也不應該)必須登錄到數據庫的權限。

創建一個SQL登錄名並將其憑據添加到連接字符串或以有權登錄到數據庫的用戶身份運行服務。

在服務屬性 - >登錄選項卡,更改帳戶: enter image description here

+0

它的工作,非常感謝 –

相關問題