c# - Mac 上的 .NET Core 1.1 应用程序和 SQL Server 连接字符串
问题描述
我在将 .NET Core 1.1 应用程序连接到远程 SQL Server 时遇到问题,但仅在我的 Mac 上,因为在 Windows 上一切正常。
说这不是我的应用程序,我只是想让它工作,这是我在 appsettings.Development.json 上的连接字符串:
"ConnectionStrings": {
"MesDatabase": "Data Source=x.x.x.x\\BLABLA,49331; Initial Catalog=DBNAME; Uid=sa; Pwd=blablabla"
}
这是我打开连接时出现的错误:
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:TCP 提供者,错误:25 - 连接字符串无效)
我无法访问服务器,知道吗?我几乎可以肯定这是连接字符串上的一个愚蠢错误,但我找不到它。
我还尝试在 Windows 上创建一个 .udl 文件,使用正确的连接数据对其进行编辑,然后将生成的连接字符串用记事本打开。没什么,在 Mac 上总是“连接字符串无效”。
解决方案
正如 Jeroen Monstert 所说:
同时指定实例名称和端口号是没有意义的。要么指定实例名称,然后让 SQL Server Browser 服务为您解析端口,要么指定端口,但忽略实例名称。
我的问题是由于在连接字符串中我同时拥有实例名称和端口,以及 .NET Core 1.1 上的“可能存在错误”,因为 Mac 和 Windows 之间的行为不同。在我的情况下,SQL Server Browser 在服务器上已关闭,因此我需要指定端口,因此我必须从连接字符串中删除实例名称。
推荐阅读
- docker - 使用约束在一台机器上运行多个 traefik 实例
- android - 通过 Retrofit Android 以数组形式发送 ROOM 数据库列表数据
- python - 如何使用超链接更改另一个页面的标签?
- python - 图像上的卷积滤波器实现
- node.js - 如何在 plesk 上安装 npm 包?
- cocoa - 自定义 NSCollectionViewLayout 不显示任何内容
- c++ - C2296:“|”:非法,左操作数的类型为“float”
- javascript - 使用使用 globalize 的函数导致 Jasmine 单元测试中的错误
- javascript - 无法在 jQuery 的 php EOD 中使用 Idselector
- c++ - 函数作为函数参数