Как подключиться к удаленному SQL Server из Visual Studio для Mac?

Этот фрагмент кода отлично выполняется в Visual Studio 2017 и .NET Core v1.1, но время ожидания подключения истекает в Visual Studio для Mac.

using System;
using System.Data.SqlClient;
using System.Data;

namespace test_console_app
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SqlConnection connection = new SqlConnection(@"Server=xxxx,1433\xxxx;Database=xxxx;User Id=xxxx;Password=xxxx"))
            {
                using (SqlCommand command = new SqlCommand("Select * from UserAccounts", connection))
                {
                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();
                    while (reader.Read())
                    {
                        Console.WriteLine(((IDataRecord)reader)[1]);
                    }
                }
            }
        }
    }
} 

Выдается следующее исключение:

«System.Data.SqlClient.SqlException: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или конкретным экземпляром. Сервер не найден или недоступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: TCP Provider, ошибка: 25 - строка подключения недействительна)"

Кто-нибудь знает, в чем может быть дело? Спасибо.


person Alex Mancheno    schedule 03.07.2017    source источник
comment
Файл под этим, вероятно, не сработает, но на всякий случай?! Вы пытались использовать IP-адрес вместо имени хоста? У меня только что были проблемы на выходных, связанные с тем, что мой Mac не мог правильно выполнить DNS-запрос.   -  person crcrewso    schedule 03.07.2017
comment
Да, я пытался использовать только IP-адрес. У меня что-то вроде этого: Сервер=‹ip-адрес›,1433\‹экземпляр сервера›, который работает в Visual Studio 2017. Удалось ли вам решить вашу проблему??   -  person Alex Mancheno    schedule 03.07.2017
comment
Попробуйте подключиться по телнету к серверу на этом порту. Это может быть брандмауэр где-то посередине, а не проблема с кодом/.net.   -  person MindingData    schedule 03.07.2017


Ответы (1)


Вы можете изменить это SqlConnection(@"Server=xxxx,1433\xxxx;Database=xxxx;User Id=xxxx;Password=xxxx")) на это SqlConnection(@"Server=xxxx\xxxx,1433;Database=xxxx;User Id=xxxx;Password=xxxx"))

Я думаю, вы указали имя экземпляра после порта, а не ip.

person Danijel Boksan    schedule 04.07.2017
comment
Я пробовал много разных комбинаций форматирования строки подключения, включая ваше предложение здесь и нада. Проблема осталась =/ - person Alex Mancheno; 05.07.2017
comment
Пожалуйста, проверьте это, может помочь вам: stackoverflow.com/questions/44090015/ - person Danijel Boksan; 06.07.2017