Ошибка при запуске update-database в VS 2017 в консоли менеджера пакетов

Я получаю эту ошибку, когда запускаю команду Update-database на консоли менеджера пакетов VS 2017.

У меня Windows Server 2016 и я установил SQL 2016, откройте все необходимые порты как 1433 на брандмауэре и добавьте sql server.exe, чтобы включить его через брандмауэр. Хорошо, в VS 2017 Server Explorer Panel я могу подключиться к серверу и увидеть свою базу данных и таблицы.

после создания моих моделей в первом режиме кода>

, Я запускаю add-migration в моей консоли пакета, и это прекрасно работает. запустить обновление базы данных я получил эту ошибку

При установке соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server)

Почему эта ошибка возникает только при запуске update-database и не отображается на панели обозревателя серверов?

Кроме того, я проверяю TCP-Ip в конфигурации сервера SQl также включен браузер сервера SQL.

Обновить:

Моя строка подключения

var connection = @"Server=***.***.***.***;Database=Mydatabase;Integrated Security=false;Initial Catalog=Mydatabase;User ID=MyDbYser;Password=MyDbPassword;";

services.AddDbContext<UniverContext>(options =>
           options.UseSqlServer(connection));

2 ответа

Ошибка явная: строка подключения неверна. В частности, он не может подключиться к базе данных, поэтому либо узел недоступен, либо провайдер не существует (обычно, когда вы игнорируете изменение строки подключения с помощью LocalDb на реальном сервере при запуске), либо база данных не существовать.

Вы не предоставили никакого кода, поэтому невозможно сказать, в чем именно заключается проблема, но мои деньги направлены на то, чтобы попытаться использовать LocalDb в производстве. Этот поставщик существует только в разработке. Вам нужно использовать настоящий экземпляр SQL Server для производства.

Если ваш сервер базы данных является именованным экземпляром и вы скопировали строку подключения из App.Config или другого файла конфигурации, то вам необходимо убедиться, что вы удалили экранированный обратный слеш. Т.е. вы должны использовать SERVER\INSTANCENAME, а не SERVER\\INSTANCENAME

Вероятно, ошибка заключается в том, что имя вашего экземпляра неверно, а не в какой-либо другой необычной проблеме.

Другие вопросы по тегам