Ошибка при запуске 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
Вероятно, ошибка заключается в том, что имя вашего экземпляра неверно, а не в какой-либо другой необычной проблеме.