Приложение не может подключиться к локальной базе данных SQL на Azure VM - PullRequest
0 голосов
/ 01 мая 2018

Я перенес базу данных и приложение с сервера Win 2012 r2, работающего на виртуальной машине Azure, на сервер 2016 года, работающий на виртуальной машине Azure. Аутентификация хранится на локальном сервере баз данных sql 2012, на котором также работает SSRS.

Приложение .net core 1.1 не может увидеть базу данных на новом сервере 2016 года при попытке подключиться к нему через это соединение: «AuthenticationConnection»: «Server = xxxxxx.australiasoutheast.cloudapp.azure.com, 1433; Database = xxxxxx ; Идентификатор пользователя = xxxxxx; Пароль = xxxxxxx; " - и сообщает об ошибке:

System.InvalidOperationException: было сгенерировано исключение, которое скорее всего из-за временного сбоя. Если вы подключаетесь к SQL В базе данных Azure рассмотрите возможность использования SqlAzureExecutionStrategy. ---> System.Data.SqlClient.SqlException: связанный с сетью или при установке соединения с SQL Server. Сервер не найден или не был доступен. проверить что имя экземпляра правильное и что SQL Server настроен на разрешить удаленные подключения. (поставщик: поставщик TCP, ошибка: 0 - A Попытка подключения не удалась, потому что подключенная сторона не правильно ответить через некоторое время или не удалось установить соединение потому что подключенный хост не смог ответить.) --->

Это соединение работает локально на старом сервере 2012 года. При попытке локального подключения на новом сервере через SSMS с использованием имени DNS база данных сообщает об ошибке:

Ошибка сети или экземпляра установление соединения с сервером SQL. Сервер не найден или был недоступен.

Однако я могу получить к нему доступ через SSMS, не используя имя DNS, а используя имя локального сервера.

Я могу получить доступ к базе данных sql извне машины. И когда приложение запускается в режиме отладки извне сервера, оно также прекрасно подключается. Это только при попытке доступа к БД изнутри виртуальной машины с использованием имени DNS.

Все порты открыты и попытались отключить брандмауэр безрезультатно. Я обеспечил смешанный режим аутентификации в базе данных SQL. Я установил все доступные обновления. Единственная разница в настройке между старым сервером и новым:

  • Новый сервер внутри лазурной виртуальной сети
  • Новый сервер имеет статический IP-адрес (который принудительно превратил его в виртуальную сеть)
  • Новый сервер Windows 2016

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

1 Ответ

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

Я изменил строку подключения в приложении, чтобы использовать имя локального сервера, а не имя DNS, и это позволило ему общаться. Что касается того, почему FQDN не работает, я не знаю. Это было сделано в Windows Server 2012. В среде есть что-то другое, но я не могу найти это.

...