Asp.net Can';不能从本地服务器访问数据库,但可以从远程服务器访问

Asp.net Can';不能从本地服务器访问数据库,但可以从远程服务器访问,asp.net,sql-server,asp.net-core,sql-server-express,Asp.net,Sql Server,Asp.net Core,Sql Server Express,我一直在尝试为我的ASP.NET核心应用程序设置SQL Server 2016 Express实例。我已经到了可以在本地开发机器上使用dev版本连接到数据库的地步,但不能在服务器上使用已发布的版本连接到数据库(这也承载了SQL server实例) 我将本地开发版本称为“开发服务器”,远程发布版本称为“真正的服务器”。两台服务器访问相同的SQL Server实例 在dev服务器上,我使用我的appSettings.json中的以下connectionString连接到SQL server,没有问题

我一直在尝试为我的ASP.NET核心应用程序设置SQL Server 2016 Express实例。我已经到了可以在本地开发机器上使用dev版本连接到数据库的地步,但不能在服务器上使用已发布的版本连接到数据库(这也承载了SQL server实例)

我将本地开发版本称为“开发服务器”,远程发布版本称为“真正的服务器”。两台服务器访问相同的SQL Server实例

在dev服务器上,我使用我的appSettings.json中的以下connectionString连接到SQL server,没有问题

Data Source=10.50.70.50;Integrated Security=False;User ID=voetbal;Password=*******;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
当我试图从真正的服务器连接时,我得到了错误

SqlException:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:52-找不到本地数据库运行时安装。请验证是否正确安装了SQL Server Express,以及是否启用了本地数据库运行时功能。) 在远程计算机上,我在appsettings.json和作为环境变量中尝试了以下连接字符串:

使用IP:

Data Source=10.50.70.50;Integrated Security=False;User ID=voetbal;Password=*****;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
使用localhost而不是IP:

Data Source=localhost;Integrated Security=False;User ID=voetbal;Password=*****;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
使用本地计算机名:

Data Source=WIN-DMM50393I9A;Integrated Security=False;User ID=voetbal;Password=*****;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
使用本地计算机名和SQL实例名:

Data Source=WIN-DMM50393I9A\MSSQLLOCALDB;Integrated Security=False;User ID=voetbal;Password=*****;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
作为localdb:

Data Source=(localdb)\\MSSQLLOCALDB;Integrated Security=False;User ID=voetbal;Password=*****;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
然后我想,也许它应该是“服务器”而不是“数据源”,所以我用这个替代品再次尝试了它们。还是一样的错误

所以有些东西告诉我连接字符串不是这里的问题。每当我在internet上搜索错误时,我只会找到有关试图连接到实际LocalDB实例的人的帖子,而不是SQL Server Express实例。如果我的应用程序确实试图连接到LocalDB实例,那么为什么我的开发服务器要处理数据库


我不知道我还能做些什么来解决这个问题。有什么想法吗?

关于appsettings.Development.json和appsettings.json,您确定已经为开发和生产环境定义了ConnectionString吗

能否尝试在服务器上记录连接字符串值:

string conectionString = Configuration.GetConnectionString("DefaultConnection");

对于测试,我只使用appsettings.json,它不会被特定于环境的appsettings.json文件覆盖。请再次解释。当您试图从本地计算机连接到托管在“服务器”上的SQL实例时出现问题?有我的本地开发计算机和服务器计算机。服务器计算机具有SQL server Express。当我在本地开发计算机上运行asp.net应用程序时,该应用程序可以连接到SQL Server。当我在服务器计算机上运行应用程序时,该应用程序无法连接到SQL server。您是否尝试使用Integrated Security=True选项?@PetarInvanov证明您是对的。我几乎不好意思告诉你出了什么问题。发布工具正在向appsettings.production.json文件注入错误的connectionstring。