当我在包管理器控制台的VS 2017中运行更新数据库时出错



当我在VS 2017软件包管理器控制台上运行更新数据库命令时出现此错误。

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

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

.我在包控制台中运行添加迁移,这工作正常 .运行更新数据库我收到此错误

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

为什么我只在运行更新数据库时才出现此错误,并且在服务器资源管理器面板上没有?

另外,我在SQl服务器配置中检查TCP-Ip还启用了sql服务器浏览器。

更新:

我的连接字符串是

var connection = @"Server=***.***.***.***;Database=Mydatabase;Integrated Security=false;Initial Catalog=Mydatabase;User ID=MyDbYser;Password=MyDbPassword;";
services.AddDbContext<UniverContext>(options =>
options.UseSqlServer(connection));

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

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

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

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

最新更新