【问题标题】:Cannot connect to localdb as system无法作为系统连接到 localdb
【发布时间】:2015-04-26 06:13:33
【问题描述】:

我有一个托管在 Windows 服务中的 WCF 服务,当它连接到 localdb 数据库时,它会产生以下错误:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。指定的 LocalDB 实例不存在

这是我的连接字符串:

<add name="CredentialEntities" 
     connectionString="metadata=res://*/Credential.csdl|res://*/Credential.ssdl|res://*/Credential.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=(localdb)\projects;Initial Catalog=Credentials;Integrated Security=True&quot;" 
     providerName="System.Data.EntityClient" />

我可以通过 SQL Server Management Studio 连接到这个数据库没有问题,我也可以通过 Visual Studio 数据连接连接到数据源。 当我将 windows 服务作为我的帐户运行时,它可以成功运行。

我尝试在 SQL Server 中将NT AUTHORITY\SYSTEM 帐户添加为系统管理员,但没有成功

【问题讨论】:

  • 看看这里关于连接字符串以及如何格式化它们C# connectionsStringsfyi使用SqlDataClient连接到sql server并通过EF连接到sql server连接字符串不是一样的
  • 我的连接字符串可以在我的帐户中正常工作,但不能作为本地系统帐户

标签: c# sql-server wcf localdb


【解决方案1】:

建议您考虑添加一个用于专用数据库访问的用户(例如 myServiceUser),然后将新用户设置为 Windows 服务帐户。最后,添加必要的 SQL Server 权限,允许专用 SQL Server 访问用户帐户查询目标视图并调用相关程序。

【讨论】:

  • 好吧,我可以这样做,但只是想知道为什么它不能作为本地系统用户工作。 SQLExpress 没有任何问题。我也可以作为 sql 帐户运行,但这些是解决方法
  • 以下文章似乎提供了选项的全面概述:stackoverflow.com/questions/26597498/…
猜你喜欢
  • 2016-08-10
  • 2022-01-20
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多