如何从Windows服务访问localDB

san*_*art 5 .net c# sql sql-server

我需要在本地使用数据库.我已经使用Visual Studio 2012在(LocalDB)\ v11.0 Server中创建了数据库.从例如控制台应用程序连接时,一切正常.但我的应用程序是Windows服务.尝试连接到我的数据库输出:

"... The login failed.Login failed for user 'NT AUTHORITY\SYSTEM"
Run Code Online (Sandbox Code Playgroud)

这有什么解决方案吗?也许我应该考虑为它设置其他数据库服务器?如果是,如何设置它以便只在本地可见?

san*_*art 11

所以我自己找到了解决方案,如何从作为本地系统运行的Windows服务连接(localdb)实例:

我使用过这篇文章:http : //technet.microsoft.com/pl-pl/library/hh212961.aspx http://dba.fyicenter.com/faq/sql_server_2/Verifying_a_Login_Name_with_SQLCMD_Tool.html http://social.technet.microsoft .COM /维基/内容/文章/ 4609.troubleshoot-SQL服务器2012-EXPRESS-localdb.aspx

所以我共享了我的localdb(如第1篇文章中),问题是我无法连接sqlcmd命名管道np://.我在第3篇文章中找到了答案:

使用sqlcmd时,请确保使用的是SQL Server 2012版本(可在%Program Files%\ Microsoft SQL Server\110\Tools\Binn中找到).如果安装了以前版本的sqlcmd,则从命令行单独调用sqlcmd很可能使用旧版本(不支持localdb),因为较旧的路径首先出现在PATH环境变量中.通常,手动调整PATH环境变量以便首先拾取110个版本可能是个好主意.

事实上,这些小信息至关重要;)

所以我创建了用户:用户密码:pass321!@.

在我的Windows服务中,我的Sql connectionString看起来:

"Data Source=(localdb)\\.\\MyInstanceShared;Integrated Security=false;User Id=user;Password=pass321!@"
Run Code Online (Sandbox Code Playgroud)

集成安全性设置为错误值也很重要.

也许它会对某人有所帮助.