Windows services windows服务与sql数据库之间的连接

Windows services windows服务与sql数据库之间的连接,windows-services,sql-server-express,Windows Services,Sql Server Express,我正在尝试在用C#编写的Windows服务和SQL Server Express数据库之间建立连接。但是当调用connection.open时,我得到了这个异常 System.data.sqlClient.sqlexception: {”由于中的错误,无法生成SQL Server的用户实例 正在启动用户实例的进程。将创建连接 关闭。“} 但当我作为控制台应用程序运行时,同样的代码也可以正常工作。有人能帮我吗 _connection = new SqlConnection("Data Source

我正在尝试在用C#编写的Windows服务和SQL Server Express数据库之间建立连接。但是当调用
connection.open
时,我得到了这个异常

System.data.sqlClient.sqlexception:

{”由于中的错误,无法生成SQL Server的用户实例 正在启动用户实例的进程。将创建连接 关闭。“}

但当我作为控制台应用程序运行时,同样的代码也可以正常工作。有人能帮我吗

_connection = new SqlConnection("Data Source=.\\MSSQLSERVER1;AttachDbFilename=D:\\vinay\\project\\LightHistorian\\LH_DB.MDF‌​;Integrated Security=True;User Instance=True;");
我提供了与本地系统相同的凭据。它可以工作一次,但在其他时间不工作。但是,每当发生此异常时,如果我重新启动机器,它就会工作。不知道问题出在哪里


我对windows服务和控制台应用程序使用了相同的连接

当您执行控制台应用程序时,EXE将在您的用户凭据下运行。
执行服务时,哪些是用户凭据?您的服务是否在Locl服务帐户下运行?还是系统?还是什么?
尝试手动设置服务运行时必须使用的凭据(在Windows服务面板中,检查服务属性),并尝试使用运行控制台应用程序时使用的同一用户/pwd执行该服务

更新取自:
在本地SQL Server Express实例上使用用户实例
用户实例功能在连接期间动态创建新的SQL Server实例。这仅在本地SQL Server 2005实例上有效,并且仅在通过本地命名管道使用windows身份验证进行连接时有效。目的是能够为计算机上具有有限管理权限的用户创建完全权限SQL Server实例。
我可能认为您的服务凭据无权创建新的SQL server实例,因此请尝试删除该部分。

无论如何,请在服务属性上设置用户凭据,然后看看会发生什么。

在哪个凭据下运行服务?如果手动将服务设置为以用户身份运行,这是否解决了问题?\u connection=new SqlConnection(“数据源=。\\MSSQLSERVER1;AttachDbFilename=D:\\vinay\\project\\LightHistorian\\LH\u DB.MDF;集成安全性=True;用户实例=True;”)-我对windows服务和控制台使用了相同的连接application@macro:不,我提供了与本地系统相同的凭据。它可以运行一次,但在其他时间不会运行。但是,一旦发生此异常,如果我重新启动计算机,它就会运行。不知道问题出在哪里???@vinay:您是否尝试在该服务上设置“您的凭据”?所以你可以模拟你正在运行控制台应用程序…@macro-ya我只以本地系统运行该服务。@vinay:好的,现在用运行conole应用程序的凭据更改凭据。我的意思是,要运行你的控制台应用程序,你可能是以特定用户的身份登录的:该用户(具有相关pwd)运行你的服务,并查看你的问题是否再次出现。。。