1

您好我尝试使用 ADO.NET 连接到 SQL AZURE DB。

这是我的代码:

private static string userName = "<**@********>";
private static string password = "<********>";
private static string dataSource = "<******.database.windows.net>";
private static string databaseName = "<******>";

public void Save()
{
    SqlDataReader queryResultCloud;
    string queryString = "select * from tblScan";


    SqlConnectionStringBuilder connString2Builder;
    connString2Builder = new SqlConnectionStringBuilder();
    connString2Builder.DataSource = dataSource;
    connString2Builder.InitialCatalog = databaseName;
    connString2Builder.Encrypt = true;
    connString2Builder.TrustServerCertificate = false;
    connString2Builder.UserID = userName;
    connString2Builder.Password = password;

    using (SqlConnection connection = new SqlConnection(connString2Builder.ConnectionString))
    {
        SqlCommand command = new SqlCommand(queryString);
        command.Connection = connection;
        connection.Open();

        queryResultCloud = command.ExecuteReader();
        connection.Close();
    }

我得到下一个错误:

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
4

2 回答 2

0

您可能使用了不允许到端口 1433 的出站连接的代理,这是您可以与 SQL Azure 一起使用的唯一端口

Windows Azure SQL 数据库服务仅适用于 TCP 端口 1433。要从您的计算机访问 SQL 数据库数据库,请确保您的防火墙允许 TCP 端口 1433 上的传出 TCP 通信。

我也在这种情况下,最有希望/最具挑战性的解决方案似乎是这种端口桥接应用程序技术,但解决方案本身已经过时并且需要比我安装的旧版本的 VS,所以我正在看一些其他选择。

于 2014-04-01T16:36:12.223 回答
0

您的代码似乎是正确的。要尝试的一件事是将 TrustServerCertificate 设置为 true,并查看它是否有效。请注意,当 Encrypt 设置为 true 时,建议将此属性设置为 false。但有报道称组合会导致连接问题。我建议您查看http://www.wadewegner.com/2010/08/using-the-trustservercertificate-property-with-sql-azure-and-entity-framework/了解更多信息。此外,再次检查您是否已将 SQL Azure 防火墙配置为允许连接到本地计算机。如果您使用代理,则需要将代理的 IP 地址添加到防火墙例外中。

此致,

明旭。

于 2012-04-18T08:06:05.057 回答