【发布时间】:2021-11-07 01:36:00
【问题描述】:
我在 OpenShift 中部署了一个 .net Core Rest Service,它连接到外部 SQL Server。我在我的命名空间的配置中添加了主机名。我还在边车中设置了 Kerberos
我仍然有连接错误
我的连接字符串如下
"ConnectionStrings": {
"SqlDbContext": "Server=ServerXYZ\\InstanceXYZ,55001;Database=myAppDB;Integrated Security=True;
}
我得到的错误是
“SqlException:发生网络相关或特定于实例的错误 在建立与 SQL Server 的连接时。服务器没有 找到或无法访问。验证实例名称是否正确 并且 SQL Server 已配置为允许远程连接
”
当我从本地 Windows PC 运行 api 时,iw 工作正常,但我不确定是否需要为 OpenShift Linux pod 调整连接字符串
【问题讨论】:
-
您的连接字符串中有实例名称和端口号。最好只指定已知的端口号。指定实例名称后,SQL Browser 服务必须在目标服务器上运行,并且可以通过 udp/1434 访问,以将实例名称解析为客户端软件可以连接到的 TCP 端口号。
-
感谢您的回复!所以像这样添加它? ServerXYZ,55001 或 ServerXYZ\\55001 或 ServerXYZ:55001
-
使用 ServerNameOrIpAddress,PortNumber
-
不幸的是,到目前为止,以我的知识有限,您无法通过 openshift 或任何基于 Linux 的机器连接到 sql server,因为您的应用程序必须在 Windows 模式下运行,这在 Linux 世界中是不可能的。接下来是 Kerberos,但在 .net 3.1 之前不支持此方法
标签: sql-server linux .net-core openshift