Не удается подключиться к Azure SQL с помощью SQLConnection в Linux - PullRequest
0 голосов
/ 25 сентября 2018

В настоящее время я разрабатываю ASP.NET Core WebApi, который использует базу данных SQL Azure для сохранения данных.Я использую Linux Mint 19 в качестве среды разработки.К сожалению, когда вызывается dbConnection.Open (), я получаю SQLException:

Exception has occurred: CLR/System.Data.SqlClient.SqlException
An exception of type 'System.Data.SqlClient.SqlException' occurred in 
System.Data.SqlClient.dll but was not handled in user code: '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: TCP 
Provider, error: 40 - Could not open a connection to SQL Server)'

Вот мой код:

 private const string connectionString = "Server=tcp:{myserver}.database.windows.net,1433;Initial Catalog={mydb};Persist Security Info=False;User ID={user};Password={pass};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";

 SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
        builder.DataSource = "my_server.database.windows.net";
        builder.UserID = "my_user";
        builder.Password = "my_pass";
        builder.InitialCatalog = "my_db";

        using(IDbConnection dbConnection = new SqlConnection(builder.ConnectionString)){
            dbConnection.Open();
            var result = dbConnection.Query<Task>("SELECT * FROM Tasks");

            if (dbConnection.State == ConnectionState.Open)
            {
            dbConnection.Close();

            }
        }

Я пробовал использовать как SQLConnectionStringBuilder и передать connectionString с моими учетными данными.Ничего из этого не сработало.

Я открыл порт 1433 с помощью команды:

sudo ufw allow 1433

, но это не помогло, но получило то же исключение.

Любойочень помог бы.

Спасибо.

ОБНОВЛЕНИЕ

Мне удалось подключиться с помощью Azure SQL.Похоже, мой провайдер блокирует соединение.Я смог подключиться через точку доступа WiFi на смартфоне.

1 Ответ

0 голосов
/ 26 сентября 2018

Сначала убедитесь, что вы создали соответствующее правило брандмауэра, чтобы трафик из вашей сети достигал базы данных SQL Azure.Узнайте здесь , как это сделать.

Пожалуйста, попробуйте проверить связь с сервером SQL Azure.Пинг должен завершиться неудачно, но он должен вернуть текущий IP-адрес логического сервера базы данных SQL Azure.Если вы не видите, что возвращенный IP-адрес, значит, проблема связана с DNS.

С IP-адресом, возвращенным на предыдущем шаге, попытайтесь подключиться по этому IP-адресу через порт 1433.

telnet 181.37.11.112 1433

Если вы не можете подключиться с помощью telnet, используйте команду traceroute для диагностики при обнаружении потери данных.

...