【发布时间】:2020-04-23 10:15:44
【问题描述】:
我通过 Google Cloud 运行 SQL Server Express,并通过云代理连接到它。我正在通过 Windows 表单编写登录程序。我可以通过 Microsoft SQL Server 管理工作室连接和使用 sql server。但是当我尝试打开与 Visual Studio 的连接时,出现以下错误:
在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误 40 - 无法打开与 SQL Server 的连接)
为什么我可以在 SSMS 中轻松打开它,但不能通过 Visual Studio?
感谢任何帮助。
【问题讨论】:
-
SSMS 是否使用 TCP/IP 连接?如果 Google Cloud 类似于 Azure,那么他们可能会默认禁用命名管道协议,参考:Default SQL Server Network Protocol Configuration
-
我只是看了一下并在 Google 上进行了快速搜索,但我似乎无法在 Google 云上找到与该协议相关的任何内容。
-
命名管道协议通常用于以下情况: A. 您的客户端设置强制它,或 B. 它无法在通常的协议(TCP/IP ) 并回退到命名管道。 TCP IP 通常是您应该使用的协议。第 1 步是强制 TCP/IP 看看你得到什么错误:stackoverflow.com/questions/4430381/…
-
我在文档中的任何地方都找不到明确说明,但它确实提到了端口 1433,所以是的,我认为我们可以假设它是为 TCP/IP 而不是命名管道配置的。
-
嗨,通过云代理,它强制我通过端口 1433 进行连接,所以现在说得通了。
标签: c# sql-server visual-studio google-cloud-sql