【问题标题】:EF Can't Find Database on ProductionEF 找不到生产数据库
【发布时间】: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


【解决方案1】:

当然不在生产环境中。 阿莎,你在开发部分的appsetting文件中输入了字符串连接吗?或者在生产部分

【讨论】:

  • 这不是“答案”。它更适合作为评论发布。
  • 是的,开发和生产中的应用设置是正确的。
猜你喜欢
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2013-11-11
  • 2023-04-10
相关资源
最近更新 更多