Не удается подключиться к базе данных SQL Azure с помощью консольного приложения C # (с использованием System.Data) - PullRequest
0 голосов
/ 22 мая 2018

ОК ... Я тут рву свои волосы (и мне не с чего начинать) ... и один из них Знак одобрения разработчика , где "Это работает на моей машине"

По сути, у меня есть консольное приложение C #, которое должно загружать данные в базу данных SQL, размещенную в Azure.Моя база данных Dev хранится в подписке Visual Studio (бесплатной с MSDN), а база данных Prod входит в нашу корпоративную подписку Azure (которую я должен использовать для настройки нашей команды администратора Azure).

На моемПК, под Visual Studio (или CMD-линия) я могу подключиться к ОБА экземплярам, ​​однако на моем сервере PROD я МОГУ подключиться к базе данных DEV, но НЕ к базе данных PROD ... используя точно такое же тестовое приложение (см. Ниже).

Теперь я нахожусь за брандмауэром / прокси-сервером компании, но IP-адреса были добавлены к правилам брандмауэра обеих баз данных ... и, очевидно, он правильно настроен, поскольку он может подключаться с компьютера Dev.

Чтобы попытаться упростить тестирование, я сократил все до простого тестового C # тестового приложения и запустил его с соответствующими строками соединения ...

using System;
using System.Data.SqlClient;

namespace AzureConnectTest
{
    class AzureConnectTest
    {
        static void Main(string[] args)
        {
            string ConnectionString = @"data source=******.database.windows.net; ";
            ConnectionString += @"initial catalog=****; ";
            ConnectionString += @"persist security info=False; ";
            ConnectionString += @"MultipleActiveResultSets=True; ";
            ConnectionString += @"user id=""*****""; ";
            ConnectionString += @"password=""*****""; ";

            Console.WriteLine("Attempting to connect");
            Console.WriteLine(ConnectionString);
            try
            {
                using (SqlConnection conn = new SqlConnection(ConnectionString))
                {
                    conn.Open();
                    Console.WriteLine(" - Success");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(" - Failed");
                Console.WriteLine(ex.Message);
            }
        }
    }
}

Теперь ... вот результат...

enter image description here

Итак ... что я здесь пропустил ....

Для записи я искал SOна похожие вопросы, но ониr не получили ответа или предоставленные ответы по-прежнему не решили проблему ... и вы не можете "поднять" вопросы, чтобы сказать: "У меня возникла эта проблема"

1 Ответ

0 голосов
/ 23 мая 2018

Для успешного подключения к Базе данных SQL Azure вашей строке подключения требуются следующие компоненты:

Server=tcp:***server***.database.windows.net,1433;
Initial Catalog=***database***;
Persist Security Info=False;
User ID=***user id***;
Password=***password**
MultipleActiveResultSets=False;
Encrypt=True;
TrustServerCertificate=False;
Connection Timeout=30;

Обратите внимание, что для установления соединения необходимоДля IP-адреса подключаемого компьютера должно быть предоставлено исключение брандмауэра .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...