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

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

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

Итак, на сервере уже успешно настроены MS SQL Server 2016 и SSRS (в режиме Native). Внутри все работает, если использовать 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, иногда я даже вижу поврежденные заголовки страницы disabled_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 "плохой запрос" для некоторых из них Но проблема не исчезла ... Помогите, пожалуйста, найти решение или хотя бы направление.


person Anton Arkhipkin    schedule 12.10.2017    source источник
comment
В вашем браузере: 1. Нажмите CTRL-F5, чтобы принудительно обновить; 2. Нажмите F12 и проверьте консоль, нет ли сбоев с какими-либо файлами. Ему свойственно половинчатую нагрузку вот так   -  person Nick.McDermaid    schedule 12.10.2017
comment
Итак, вы получаете кучу ошибок http 400. Если вы можете решить те, которые исправят это   -  person Nick.McDermaid    schedule 13.10.2017
comment
В консоли вы можете щелкнуть один из URL-адресов с ошибкой 400 (скажем, тот, который заканчивается на bundle.min.css) и посмотреть, есть ли какая-либо информация за пределами Bad Request   -  person Nick.McDermaid    schedule 13.10.2017
comment
также ... вы можете попробовать несколько разных браузеров? Какой браузер вы сейчас используете?   -  person Nick.McDermaid    schedule 13.10.2017
comment
@ Nick.McDermaid та же проблема во всех браузерах ... и пытался открыть ссылки с ошибкой плохого запроса - сами они открываются успешно. Я думаю, что есть какая-то проблема с пересылкой в ​​IIS, но не вижу этого и не знаю, как исправить   -  person Anton Arkhipkin    schedule 13.10.2017


Ответы (1)


Наконец я решил свою проблему.

До этого несколько раз пробовал все перенастраивать, но ничего не помогало. Затем я увидел https://social.msdn.microsoft.com/Forums/en-US/d2542ebb-61e0-4cf2-84c5-04614db36719/remote-server-returned-an-error-400-bad-запрос?forum=sqlreportingservices:

"Проблема, по-видимому, вызвана тем, что виртуальные каталоги служб Reporting Services не настроены для правильного использования SSL. Если виртуальные каталоги служб Reporting Services находятся на том же сайте веб-приложения, как только мы настроим приложение для использования SSL, Internet Informatin Server (IIS) потребует, чтобы SSRS также использовал SSL. Чтобы решить эту проблему, настройте SSRS на использование SSL с помощью диспетчера конфигурации служб Reporting Services "

А потом я сделал:

  • установлен какой-то SSL-сертификат (это может быть даже сертификат для другого URL)
  • сопоставил весь внутренний IP + URL-адрес, интегрированный с сертификатом SSL, с веб-приложениями ReportServer и отчетов SSRS в диспетчере служб SSRS
  • остановить службу SSRS с помощью команд CMD
  • удалить неверный URL-адрес из внутренних портов прослушивания:
netsh http add urlacl url=https://xxx-test-xxx.eu-central-1.elb.amazonaws.com:443/ReportServer user="NT SERVICE\ReportServer"
netsh http add urlacl url=https://xxx-test-xxx.eu-central-1.elb.amazonaws.com:443/Reports user="NT SERVICE\ReportServer"
netsh http delete urlacl url=https://"trash URL, which is integrated to SSL certificate":443/ReportServer/
netsh http delete urlacl url=https://"trash URL, which is integrated to SSL certificate":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» в качестве значения n-значения компонентов в разделе RStrace.
  • Запущена служба SSRS. Подключение извне сервера работает, но с предупреждением о неправильном сертификате. Следующим шагом должно быть создание правильного сертификата для URL-адреса и его использование.
person Anton Arkhipkin    schedule 24.10.2017