1

当我在 VS 2017 包管理器控制台上运行 Update-database 命令时出现此错误。

我有 Windows server 2016 并在其上安装 SQL 2016,在防火墙上打开所有必要的端口为 1433,还添加 sql server.exe 以从防火墙启用。好的,在 VS 2017 服务器资源管理器面板中,我可以连接到服务器,并且可以看到我的数据库和表。

在代码优先模式下创建我的模型后 >

. 我在我的包控制台中运行 add-migration并且工作正常。运行更新数据库我得到了这个错误

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

为什么只有在运行update-database并且在服务器资源管理器面板上没有时才会出现此错误?

另外,我在 SQl 服务器配置中检查 TCP-Ip 也启用了 sql server browser 。

更新:

我的连接字符串是

var connection = @"Server=***.***.***.***;Database=Mydatabase;Integrated Security=false;Initial Catalog=Mydatabase;User ID=MyDbYser;Password=MyDbPassword;";

services.AddDbContext<UniverContext>(options =>
           options.UseSqlServer(connection));
4

2 回答 2

1

错误很明确:连接字符串不正确。具体来说,它无法连接到数据库,因此主机无法访问,提供程序不存在(当您上线时忽略使用 LocalDb 将连接字符串更改为真实服务器时很常见),或者数据库不存在存在。

您没有提供任何代码,因此无法说出确切的问题是什么,但我的钱是尝试在生产中使用 LocalDb。该提供者仅存在于开发中。您需要使用真实的 SQL Server 实例进行生产。

于 2018-08-20T13:19:21.947 回答
0

如果您的数据库服务器是命名实例并且您从 App.Config 或其他配置文件中复制了连接字符串,那么您需要确保删除转义的反斜杠。即你应该使用 SERVER\INSTANCENAME 而不是 SERVER\\INSTANCENAME

该错误很可能是您的实例名称不正确,而不是任何其他异常问题。

于 2018-11-23T10:37:24.060 回答