【问题标题】:C# and SQL Server - Error 40, could not open a connection to SQL ServerC# 和 SQL Server - 错误 40,无法打开与 SQL Server 的连接
【发布时间】: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


【解决方案1】:

不太清楚你是从哪里连接的。

我已经在没有代理的情况下重现了该问题,我只需要在 GCP 控制台中允许 IP 即可将远程连接传递到 Cloud SQL。

https://cloud.google.com/sql/docs/sqlserver/configure-ip

【讨论】:

  • 您好,感谢您使用外部 IP 而不是使用代理工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
相关资源
最近更新 更多