【发布时间】:2021-07-19 12:13:45
【问题描述】:
信息
项目是 ASP.NET Core 5.0,ORM 是 EF,DB 是 SQL Server
问题
在开发阶段,我们的数据库可以访问,但在生产阶段就不行!
连接字符串
设置在appsettings.json及其:
"MyConnectionString": "Data Source=MyDomain.com;Initial Catalog=MyDB;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD"
当我们在 Visual Studio 中使用此连接字符串运行项目时,一切正常,但发布到主机时却失败了。
错误是:
在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
有什么建议吗?
提前致谢。
【问题讨论】:
-
表示连接字符串无效 - 生产机器看不到/无法访问 MyDomain.com
-
首先要检查的是生产机器是否可以访问“mydomain.com”——它是否在内部网络上?它可以从互联网上公开访问吗?开发机器是否可能与数据库服务器在同一个网络上,但生产机器在不同的网络上,因此无法访问数据库?
-
或者数据库与应用程序在同一台机器上,并且由于服务器名称已更改(可能还有不同的数据库、用户名和密码?)
-
如果您使用 Windows 服务器,您可以使用 UDL 文件来测试与数据库的连接。转到您的服务器并按照以下步骤创建一个 .udl 文件Link
-
谢谢大家,我们的生产环境是全局主机,无法访问,我发票给主机支持检查应用服务器和数据库服务器之间的连接。
标签: sql-server entity-framework asp.net-core