C#中的窗口服务 - 底层提供程序在Open上失败

时间:2017-08-11 16:29:57

标签: c# .net windows-services

大家好我已经在c#中编写了一个windows服务,以便每隔10分钟使用entityframework连接到数据库,它在调试模式下工作正常但是当我在本地系统帐户上发布并安装它时会引发异常:

  

底层提供程序在Open上失败。   无法打开登录请求的数据库“HCClient”。登录失败。   用户'NT AUTHORITY \ SYSTEM'登录失败。

my connectionstring:

  

add name =“MyDataBaseName”connectionString =“metadata = 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 我已阅读与我的错误相关的所有主题,但没有一个工作

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

您的服务正在System用户运行,该用户没有(也不应该)拥有登录数据库的权限。

创建SQL登录并将其凭据添加到连接字符串,或以具有登录数据库权限的用户身份运行服务。

在服务属性中 - >登录选项卡,更改帐户: enter image description here