Установка служб Reporting Services и служб Internet Information Services параллельно (собственный режим SSRS)

Вы можете установить и запустить службы SQL Server 2014 Reporting Services (SSRS) и службы IIS на одном компьютере. Версия IIS, используемая вами, определяет проблемы взаимодействия, которые необходимо устранить.

Применимо к: Нативный режим служб Reporting Services
Версия IIS Проблемы Описание
IIS 6.0, 7.0, 8.0, 8.5 Запросы, предназначенные для одного приложения, принимаются другим приложением.

HTTP.SYS применяет правила приоритета для резервирования URL-адресов. Запросы, отправляемые приложениям с одинаковым именем виртуального каталога и которые совместно отслеживают порт 80, могут не достичь целевого объекта, если резервирование URL-адресов слабо относительно резервирования URL-адресов другого приложения.
В определенных условиях зарегистрированная конечная точка, заменяющая другую конечную точку URL-адреса в схеме резервирования URL-адресов, может получать HTTP-запросы, предназначенные для другого приложения.

Использование уникальных имен виртуальных каталогов для веб-службы сервера отчетов и диспетчера отчетов помогает избежать этого конфликта.

Подробные сведения об этом сценарии приведены в этом разделе.

Правила приоритета для резервирования URL-адресов

Прежде чем устранять проблемы с взаимодействием между службами IIS и Reporting Services, необходимо понимать правила приоритета резервирования URL-адресов. Правила приоритета могут быть обобщены в следующем утверждении: резервирование URL-адресов с более четко определенными значениями первым получает запросы, соответствующие URL-адресу.

  • Резервирование URL-адресов, указывающее виртуальный каталог, является более явным, чем одно из них, которое исключает виртуальный каталог.

  • Резервирование URL-адресов, указывающее один адрес (через IP-адрес, полное доменное имя, сетевое имя компьютера или имя узла), более точно, чем подстановочный знак.

  • Резервирование URL-адресов, указывающее сильный подстановочный знак, является более явным, чем слабый подстановочный знак.

В следующих примерах показан диапазон резервирований URL-адресов, упорядоченных от наиболее явных до наименее явных:

Пример Просьба
http://123.234.345.456:80/reports Получает все запросы, отправляемые в http://123.234.345.456/reports или http://<computername>/reports, если служба доменных имен может разрешить IP-адрес этого имени узла.
http://+:80/reports Получает все запросы, отправляемые любому IP-адресу или имени узла, допустимому для этого компьютера, если URL-адрес содержит имя виртуального каталога "reports".
http://123.234.345.456:80 Получает любой запрос, указывающий http://123.234.345.456 или http://< computername> , если служба доменных имен может разрешить IP-адрес для этого имени узла.
http://+:80 Получает запросы, которые еще не получены другими приложениями, для конечных точек приложений, сопоставленных со всеми назначенными.
http://*:80 Получает запросы, которые не принимаются другими приложениями, для конечных точек приложений, сопоставленных с Все не назначены.

Одним из признаков конфликта портов является то, что вы увидите следующее сообщение об ошибке : System.IO.FileLoadException: процесс не может получить доступ к файлу, так как он используется другим процессом. (Исключение из HRESULT: 0x80070020).'

Резервирование URL для IIS 6.0, 7.0, 8.0, 8.5 с использованием SQL Server 2014 Reporting Services

Учитывая правила приоритета, описанные в предыдущем разделе, можно понять, как резервирования URL-адресов, определенные для служб Reporting Services и IIS, повышают взаимодействие. Службы Reporting Services получают запросы, явным образом указывающие имена виртуальных каталогов для своих приложений; IIS получает все остальные запросы, которые затем можно направлять в приложения, которые выполняются в модели процессов IIS.

Заявление Резервирование URL-адресов Описание Получение запроса
Сервер отчетов http://+:80/ReportServer Сильный подстановочный символ на порту 80 с виртуальным каталогом сервера отчётов. Получает все запросы через порт 80, указывающий виртуальный каталог сервера отчетов. Веб-служба сервера отчетов получает все запросы к http://< computername>/reportserver.
Диспетчер отчетов http://+:80/Reports Подстановочный знак на порту 80 с виртуальным каталогом отчетов. Получает все запросы через порт 80, указывающий виртуальный каталог отчетов. Диспетчер отчетов получает все запросы на http://< computername>/reports.
IIS http://*:80/ Недостаточный маскировочный символ на порту 80. Получает все остальные запросы через порт 80, которые не получаются другим приложением.

Параллельные развертывания SQL Server 2014 и SQL Server 2005 Reporting Services в СЛУЖБАх IIS 6.0, 7.0, 8.0, 8.5

Проблемы взаимодействия между службами IIS и Reporting Services возникают, когда веб-сайты IIS имеют имена виртуальных каталогов, идентичные тем, которые используются службами Reporting Services. Например, предположим, что у вас есть следующая конфигурация:

  • Веб-сайт в IIS, назначенный порту 80 и виртуальному каталогу с именем "Отчеты".

  • Экземпляр сервера отчетов SQL Server 2014, установленный в конфигурации по умолчанию, где резервирование URL-адресов также указывает порт 80, а приложение диспетчера отчетов также использует "Отчеты" для имени виртуального каталога.

Учитывая эту конфигурацию, запрос, отправляемый в диспетчер отчетов http://< компьютерname>:80/reports, будет получен диспетчером отчетов. Приложение, доступ к которому осуществляется через виртуальный каталог отчетов в IIS, больше не будет получать запросы после установки экземпляра сервера отчетов SQL Server 2014.

Если выполняется параллельное развертывание старых и более новых версий служб Reporting Services, скорее всего, возникнет проблема маршрутизации. Это связано с тем, что все версии служб Reporting Services используют "ReportServer" и "Reports" в качестве имен виртуальных каталогов для сервера отчетов и приложений диспетчера отчетов, что повышает вероятность того, что у вас будут виртуальные каталоги "отчеты" и "сервер отчетов" в IIS.

Чтобы убедиться, что все приложения получают запросы, выполните следующие рекомендации.

  • Для установки служб Reporting Services используйте имена виртуальных каталогов, которые еще не используются веб-сайтом IIS на том же порту, что и службы Reporting Services. Если возникает конфликт, установите службы Reporting Services в режиме "только для файлов" (воспользуйтесь опцией "Установить, но не настраивать сервер" в мастере установки), чтобы можно было настроить виртуальные каталоги после завершения установки. Одним из признаков конфликта конфигурации является сообщение об ошибке: System.IO.FileLoadException: процесс не может получить доступ к файлу, так как он используется другим процессом. (Исключение из HRESULT: 0x80070020).

  • Для установок, которые вы настраиваете вручную, используйте соглашения об именовании по умолчанию в URL-адресах для настройки. Если вы устанавливаете SQL Server 2014 Reporting Services (SSRS) в качестве именованного экземпляра, укажите имя экземпляра при создании виртуального каталога.

См. также

Настройка URL-адресов сервера отчетов (диспетчер конфигурации SSRS)
Настройка URL-адреса (диспетчер конфигурации SSRS)
Установка сервера отчетов в режиме по умолчанию служб Reporting Services