Отчеты SSRS 2016 Виртуальная папка недоступна извне сервера (с кучей 400 ошибок "неверный запрос" для некоторых внутренних запросов)

У меня проблема с доступом к виртуальной папке "Отчеты" SSRS 2016 вне сервера.

Сервер, расположенный на облачном сервере AWS, для доступа к нему через RDP мы (в отделе BI) используем имя сервера "xxx-test-xxx.eu-central-1.elb.amazonaws.com". Я не силен в этой теме, но, как я понимаю, это URL-адрес (FQDN) балансировщика нагрузки на стороне AWS, который пересылается позже на некоторый IP-адрес, который можно периодически менять.

Итак, на сервере уже успешно настроены MS SQL Server 2016 и SSRS (в основном режиме). Все работает внутри, если использовать URL-адреса http(://)127.0.0.1/reports, http(://)SQL_INSTANCE_NAME/Reports и даже http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/Reports (для этой цели была добавлена ​​строка "127.0.0.1 localhost xxx-test-xxx.eu-central-1.elb.amazonaws.com" в файл "hosts" Windows).

Сейчас я пытаюсь получить доступ к порталу SSRS извне сервера (пока без SSL-сертификата, только через HTTPS):

  • Основное веб-приложение IIS сервера успешно открывается с использованием http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com (я должен ввести свои учетные данные AD с сервера в окне входа в систему)
  • Виртуальная папка ReportServer успешно открывается с использованием http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/ReportServer (я должен ввести свои учетные данные AD с сервера в окне входа в систему)
  • но когда я пытаюсь открыть виртуальную папку отчетов по http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/Reports - после ввода учетных данных AD я вижу поврежденную или не загруженную страницу, Иногда это timeout_text, иногда я даже вижу поврежденные заголовки страницы broken_headers.

Перепробовал много дел, но ничего не помогло: - 80 порт открыт для входящих и исходящих соединений в брандмауэре на сервере - в реестре отключен DisableLoopbackCheck - добавлен xxx-test-xxx.eu-central-1.elb. amazonaws.com в BackConnectionHostNames в реестре - пытаясь редактировать rsreportserver.config несколько раз вручную, добавили "http(://)xxx-test-xxx.eu-central-1.elb.amazonaws.com/ReportServer", а также

В консоли браузера на вкладке сети есть множество внутренних запросов с 400 ошибочными запросами для некоторых из них. Но проблема не исчезла... Пожалуйста, помогите мне найти решение или хотя бы направление.

1 ответ

Наконец я решил свою проблему. До этого я несколько раз пытался перенастроить все, но ничего не помогло. Затем я увидел https://social.msdn.microsoft.com/Forums/en-US/d2542ebb-61e0-4cf2-84c5-04614db36719/remote-server-returned-an-error-400-bad-request?forum=sqlreportingservices: "Похоже, проблема вызвана тем, что виртуальные каталоги служб Reporting Services не настроены для правильного использования SSL. Если виртуальные каталоги служб Reporting Services находятся на одном сайте веб-приложения, после того как мы настроим приложение для использования SSL, Интернет-информация Сервер (IIS) также потребует, чтобы SSRS также использовал SSL. Чтобы устранить эту проблему, настройте SSRS на использование SSL через диспетчер конфигурации служб Reporting Services ".

И тогда я сделал:

  • установлен какой-то SSL-сертификат (это может быть даже сертификат для другого URL)
  • сопоставил все внутренние IP + URL, который интегрирован в сертификат SSL, с ReportServer и веб-приложениями отчетов SSRS в диспетчере служб SSRS
  • Остановите службу SSRS с помощью команд CMD. Удалите неверно сопоставленный URL-адрес из внутренних прослушивающих портов.NETsh http show urlacl netsh http add urlacl url = https://xxx-test-xxx.eu-central-1.elb.amazonaws.com/ReportServer user = "NT SERVICE \ ReportServer" netsh http add urlacl url = https://xxx-test-xxx.eu-central-1.elb.amazonaws.com/Reports user = "NT SERVICE \ ReportServer" netsh http delete urlacl url =https://"URL-адрес корзины, который интегрирован в сертификат SSL":443/ReportServer/ netsh http Удалить urlacl URL-адрес =https://"URL-адрес корзины, который интегрирован в сертификат SSL":443/Reports netsh http show urlacl В результате там должны быть только правильные URL
  • Установите C:\Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\ Службы Reporting Services\ReportServer\rsreportserver.config в соответствующее состояние.
  • Вероятно, излишний шаг: изменил ReportingServicesService.exe.config из подпапки "bin": поместите "4" в качестве значения DefaultTraceSwitch и "all:3,http:4" в качестве компонентов nvalue в разделе RStrace
  • Запущен сервис SSRS. Соединение извне сервера работает, но с предупреждением о неверном сертификате. Следующим шагом должно стать создание правильного сертификата для URL и его использование.
Другие вопросы по тегам