我有一个ASP.NET Core 1.1 Web API,它在Ubuntu的Docker容器中运行,并连接到Windows服务器上的SQL Server数据库(SQL Server 2012 SP3)。这适用于4个out环境中的3个,但是在一个环境中,它无法连接到SQL Server,我试图对其进行故障排除。Linux上的.NET Core如何确定SQL Server实例侦听的端口?
的错误是:
Unhandled Exception: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 25 - Connection string is not valid)
的SQL Server有一个实例名称:SQLSERVER1 \ APPS。在Linux服务器上,我可以ping服务器SQLSERVER1和telnet到SQLSERVER1 1372(1372是APPS实例的端口:所以网络连通性在那里。
我可以看到问题出现的唯一空间是.NET核心翻译实例名称的端口号。有谁知道这是如何实现的,以及它是否是在客户机上配置?
谢谢,这有助于我的调试。 'tcp:'前缀可以工作,但似乎并不需要......但即使指定端口,我仍然无法从Docker容器连接。测试控制台应用程序使用来自Docker外部的相同连接字符串进行连接,所以显然是Docker配置问题。现在有点难倒了。 – Peter