SQL网络接口,错误:50 - 发生本地数据库运行时错误.指定的LocalDB实例不存在

 woorain_77b002 发布于 2022-12-12 19:49

编辑: 我原来遗漏的一个重要细节(因为我不知道它很重要)是我们在完整的IIS中运行这些站点,而不是从IIS Express运行.


我们正在尝试为Kentico CMS设置本地开发环境,将我们的本地计算机添加到我们当前的Dev - > Staging - > Prod同步链中(所以我们最终会找到Locals - > Dev - > Staging - >产品).

我们将我们的Dev DB复制到本地机器上,然后复制到SQL Server的(localdb)\ v11.0实例上,但我们在除了我的计算机之外的所有计算机上都遇到了问题.

这是我们得到的错误:

应用程序无法连接到数据库,请检查web.config文件中的连接字符串和SQL Server可用性.

原始错误:

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

我已经尝试了其他SO答案和其他网站的大量建议,以弄清楚为什么我们会收到这个错误(以及为什么它不会在我的机器上发生),但没有运气.我们可以在SSMS中连接到(localdb)\ v11.0但我们无法通过VS连接到它(相同的错误).此外,当我们打开Sql Server配置管理器时,我们没有看到任何SQL Server服务列表.有任何想法吗?

1 个回答
    1. 确保已安装.NET Framework 4.0.2+

      将AppPool设置为在NetworkService帐户下运行.

      在数据库中为该帐户创建登录.

      USE [master]; CREATE LOGIN [NT AUTHORITY\NETWORK SERVICE] FROM WINDOWS; EXEC sp_addsrvrolemember N'NT AUTHORITY\NETWORK SERVICE', SYSADMIN;

      通过运行与所有用户共享您的实例 SqlLocalDB share Kentico KenticoShared

      使用以下格式的连接字符串:

    <add name="CMSConnectionString" connectionString="Data Source=(localdb)\.\KenticoShared;Initial Catalog=KenticoDB;Integrated Security=True;Connect Timeout=60" />

      如果它没有帮助使用命名管道:

    <add key="CMSConnectionString" value="Persist Security Info=False;Integrated Security=SSPI;database=KenticoDB;server=np:\\.\pipe\LOCALDB#D2BA6590\tsql\query;Current Language=English;Connection Timeout=120;" />

    笔记:

      可以通过运行以下C#来确定计算机上NetworkService帐户的确切名称

    var ns = new SecurityIdentifier(WellKnownSidType.NetworkServiceSid, null).Translate(typeof(NTAccount)).ToString()

      命名管道可以通过在CMD中运行来确定: SqlLocalDB info KenticoShared

      别忘了运行你的实例 SqlLocalDB start KenticoShared

    2022-12-12 19:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有