问题描述:
使用MSSQLLocalDB时,在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: 命名管道提供程序, error: 50 - 无法打开到 SQL Server 的连接)
环境:SQL SERVER(MSSQLLocalDB)+VS2017+ASP.NET MVC+IIS(10.0)
问题原因:LocalDB的访问权限是根据访问者来变化的。在开发模式下,LoacalDB的创建一般是Administrator用户,开发工具VS的权限也是Administrator用户,所以访问LocalDB没有出现问题。当部署到IIS后,访问LocalDB的用户变成了IIS对应的用户,即‘IIS Pool\Your APPPoolName’,这时候由于IIS没有对应的访问权限,所以会报无法登陆的错误。
解决方案:
(1)打开IIS管理器,应用层程序池,找到对应引用,并且选择高级设置
(2)这两项如下设置
(3)重启后问题解决
参考文献:https://www.z01.com/item/3609