sql-server - 从 Windows Azure 连接到远程 SQL Server 2008

标签 sql-server sql-server-2008 networking azure

我尝试从 Windows Azure 辅助角色连接到 SQL Server 2008 实例(不是 SQL Azure,而是远程托管的 SQL Server 2008 标准版),但收到以下错误消息

System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:SQL 网络接口(interface),错误:26 - 定位指定的服务器/实例时出错)位于 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常, bool 型breakConnection)...

代码片段如下:

using (var connection = new SqlConnection("MY CONNECTION STRING")
{
  connection.Open();
  var command = new SqlCommand("Select 1", connection);

  try
  {
     var res = command.ExecuteScalar();
  }
  catch (Exception e) {
     Log.Log("error", e.ToString());
  }
}

当我从本地命令行(直接访问远程 SQL Server)运行该代码片段时,它工作正常,但当从 Windows Azure 运行时,我最终得到了上面的错误消息概述。为了确保连接字符串没有问题,我重新尝试对推送到 Azure 的源代码中的字符串进行硬编码(只是为了 100%,但我仍然遇到同样的问题)。

我在 SQL Server 2008 实例上没有设置防火墙,而且我已经没有主意了。

有人能发现我在这里做错了什么吗?

最佳答案

我注意到,当连接到在 1433 以外的端口上运行的外部非 Azure SQL Server 实例时,Azure 辅助角色的 SQL Server 解析协议(protocol)(或 SQL Server 浏览器)存在一些问题。在这些情况下,它可以帮助在连接字符串中显式指定实例的 TCP 端口:

Data Source={domain/ip},{port};
Network Library=DBMSSOCN;
Initial Catalog={dbname};
User ID={user};
Password={pw}

另请参阅Connect from Azure to an SQL Server Named Instance

关于sql-server - 从 Windows Azure 连接到远程 SQL Server 2008,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952904/

相关文章:

sql - 如何确保我的 SQL varchar 字段是唯一的

c# - 如何使用 C# 运行 SQL 事务(使用 TSql110Parser)

sql-server - 如果在存储过程运行时更改它会发生什么?

sql - 如何在SQL Server 2008中创建复合主键

sql - 输出子句 : The multi-part identifier could not be bound

android - 如何在 android 上做一个 http 窃听器或代理应用程序

c++ - 在同一台机器上运行客户端和服务器

sql-server - SQL Server - 将服务器和数据库传递给存储过程

sql-server - SQL Server View 需要很长时间才能更改,但查询本身会快速完成?

c - UDP 客户端和服务器无法跨不同机器进行通信