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

あなたのコードは正しいようです。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 に答える
0

SQL Azure で使用できる唯一のポートであるポート 1433 への送信接続を許可しないプロキシの背後にいる可能性があります。

The Windows Azure SQL Database service is only available with TCP port 1433. お使いのコンピューターから SQL Database データベースにアクセスするには、ファイアウォールで TCP ポート 1433 での送信 TCP 通信が許可されていることを確認してください。

私もこの状況にあり、最も有望で挑戦的な解決策はこのポートブリッジングアプリケーションテクニックのようですが、解決策自体は古く、インストールしたよりも古いバージョンの VS が必要です。他の選択肢。

于 2014-04-01T16:36:12.223 に答える