Поделиться через


Параллельная установка служб Reporting Services и служб IIS (собственный режим 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-адресу другой конечной точки в схеме резервирования 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://< имя>_компьютера/отчеты, если служба доменных имен может разрешить 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, с указанием виртуального каталога Reports. Получает все запросы на порт 80, в которых указан виртуальный каталог reports. Диспетчер отчетов получает все запросы к 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 и виртуальный каталог с именем Reports.

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

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

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

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

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

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

См. также:

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