Ошибка загрузки веб-сайта. Невозможно подключиться к базе данных SQL Azure через веб-сервер Azure. Подключается только локально - PullRequest
0 голосов
/ 04 июля 2019

У меня есть приложение Web Forms .NET 4.5+, работающее на веб-сервере виртуальной машины Azure (Windows Server 2019) с использованием IIS 8.

Сайт будет загружен с производственной страницей index.html (Другими словами, подключение к веб-серверу хорошее LIVE, без подключения к БД). Сайт полностью загружается локально , включая базу данных (локально означает запуск сайта через Visual Studio 2019 / Chrome на моем рабочем столе)

Мой web.config такой же локально, как и в prod -> он имеет ту же строку подключения и т. Д.

Моя база данных SQL находится не на традиционном экземпляре SQL Server, а через виртуальную машину на сервере. Технически это «БД Azure SQL»

Проблема и ошибка: при вводе URL-адреса сайта время ожидания страницы и не удается подключиться к SQL Server / DB. Вот полный текст ошибки:

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

  • Я добавил правило входящего и исходящего трафика в брандмауэр для порта 1433
  • У меня есть действительный логин для моей строки подключения (опять же, такое же соединение SQL работает локально
  • Опять же, сайт загружается без каких-либо попыток подключения к БД
  • Я предпринял попытку "тупой" версии строки подключения (полная строка показана ниже). Смысл, убрал определенные классификаторы и флаги. Пробовал разные комбинации

Вот полная строка подключения, предоставляемая Azure. Вот что я использую:

Server=tcp:dbservername.database.windows.net,1433;Initial Catalog=D2Items_DB;
Persist Security Info=False;User ID=myUserName;Password=myPassword;
MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Избыточная / избыточная информация:

  • Ввод IP-адреса или URL-адреса веб-сайта в мой веб-браузер - вот что не получается
  • Это НЕ дает сбой, когда я НЕ устанавливаю соединение с базой данных (пример: когда index.html - это ТОЛЬКО файл в папке веб-сайта на сервере)
  • Это мое первое развертывание / публикация веб-приложения в открытом доступе. У меня 5-6 лет полного опыта работы с .NET, но я всегда работал только в интрасети и на предварительно настроенных серверах. Я выбрал Azure, потому что он был бесплатным с пробной версией. Я думал, что это будет легко. Я был неправ. Я рассматриваю другие варианты.

Ответы [ 3 ]

0 голосов
/ 04 июля 2019

Эта ошибка возникает, если ваш ресурс не загружается.

Вам нужно попробовать проверить базовый URL внутри вашего проекта,

0 голосов
/ 04 июля 2019

Вы добавили IP-адрес своего сервера в конфигурацию FW сервера SQL, https://docs.microsoft.com/en-us/azure/sql-database/sql-database-firewall-configure#creating-and-managing-ip-firewall-rules

0 голосов
/ 04 июля 2019

Сервер, на котором установлен SQL, должен разрешать входящие соединения через порт 1433.

Проверьте эту статью здесь . Я знаю, что это для 2008 R2, но некоторые настройки похожи

...