Параллельная установка служб Reporting Services и служб IIS
Службы SQL Server 2012 Службы Reporting Services (SSRS) и службы IIS могут быть установлены и запущены на одном и том же компьютере. От используемой версии служб IIS будет зависеть, какие возникнут проблемы совместимости.
Версия служб IIS |
Проблемы |
Описание |
---|---|---|
IIS 6.0 и 7.0 |
Запросы, предназначенные для одного приложения, принимаются другим приложением. Компонент 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://<имя_компьютера>/reports, если служба доменных имен способна разрешить этот IP-адрес в это имя узла. |
http://+:80/reports |
Получает любые запросы, отправленные любому IP-адресу или имени узла, являющимся допустимыми для этого компьютера, при условии, что URL-адрес содержит имя виртуального каталога reports. |
http://123.234.345.456:80 |
Получает любой запрос, в котором указан адрес http://123.234.345.456 или http://<имя_компьютера>, при условии, что служба доменных имен способна разрешить этот IP-адрес в это имя узла. |
http://+:80 |
Получает запросы, которые еще не получены другими приложениями, применительно к любым конечным точкам приложений, сопоставленным со значением Все назначенные. |
http://*:80 |
Получает запросы, которые еще не получены другими приложениями, применительно к любым конечным точкам приложений, сопоставленным со значением Все неназначенные. |
Одним из индикаторов конфликта портов будет следующее сообщение об ошибке: «System.IO.FileLoadException: процесс не может получить доступ к файлу, поскольку тот используется другим процессом. (Исключение HRESULT: 0x80070020)».
Резервирования URL-адресов для служб IIS 6.0 и 7.0 и служб SQL Server 2012 Reporting Services
Изучение правил приоритета, приведенных в предыдущем разделе, позволяет разобраться, как резервирования URL-адресов, определенные для служб Reporting Services и IIS, поддерживают совместимость. Службы Reporting Services получают запросы, в которых явно указаны имена виртуальных каталогов для их приложений; службы IIS получают все остальные запросы, которые могут затем быть направлены приложениям, запущенным в рамках модели процесса IIS.
Приложение |
Резервирование URL-адресов |
Описание |
Прием запроса |
---|---|---|---|
Сервер отчетов |
http://+:80/ReportServer |
Сильный шаблон для доступа к порту 80, с указанием виртуального каталога сервера отчетов. |
Получает все запросы на порт 80, в которых указан виртуальный каталог сервера отчетов. Веб-служба сервера отчетов получает все запросы с адресом http://<имя_компьютера>/reportserver. |
Диспетчер отчетов |
http://+:80/Reports |
Сильный шаблон для доступа к порту 80, с указанием виртуального каталога Reports. |
Получает все запросы на порт 80, в которых указан виртуальный каталог reports. Диспетчер отчетов получает все запросы с адресом http://<имя_компьютера>/reports. |
IIS |
http://*:80/ |
Слабый шаблон для доступа к порту 80. |
Получает любые оставшиеся запросы на порт 80, которые не получены другим приложением. |
Параллельное развертывание SQL Server 2012 и служб SQL Server 2005 Reporting Services на службы IIS 6.0 или 7.0
Если веб-сайты IIS имеют имена виртуальных каталогов, идентичные используемым в службах Reporting Services, возникают проблемы функциональной совместимости служб IIS и служб Reporting Services. Например, предположим, что имеется следующая конфигурация.
Веб-сайт в службах IIS, который назначен на порт 80 и виртуальный каталог с именем Reports.
Экземпляр сервера отчетов SQL Server 2012, установленный в конфигурации по умолчанию, где в резервировании URL-адресов также указан порт 80, а приложение диспетчера отчетов также использует Reports в качестве имени виртуального каталога.
В такой конфигурации запрос, отправленный по адресу http://<имя_компьютера>:80/reports, будет получен диспетчером отчетов. Приложение, доступ к которому предоставляется с помощью виртуального каталога Reports в службах IIS, после установки экземпляра сервера отчетов SQL Server 2012 больше не будет получать запросы.
При работе развернутых параллельно старой и новой версии служб Службы Reporting Services, по всей вероятности будут обнаруживаться только что описанные проблемы маршрутизации. Это связано с тем, что во всех версиях служб Службы Reporting Services в качестве имен виртуальных каталогов для приложений сервера отчетов и диспетчера отчетов используется ReportServer и Reports, в результате чего повышается вероятность наличия виртуальных каталогов reports и reportserver в службах IIS.
Чтобы обеспечить получение всеми приложениями направленных к ним запросов, руководствуйтесь следующими рекомендациями.
Для установок служб Reporting Services используйте имена виртуальных каталогов, которые не используются ни одним веб-сайтом IIS на том же порте, что и в службе Reporting Services. Если возникает конфликт, установите службы Reporting Services в режиме «только файлы» (с помощью программы установки, но не настраивая параметры сервера в мастере установки), чтобы иметь возможность настроить виртуальные каталоги после завершения установки. Одним из индикаторов конфликта конфигурации будет следующее сообщение об ошибке: «System.IO.FileLoadException: процесс не может получить доступ к файлу, поскольку тот используется другим процессом. (Исключение HRESULT: 0x80070020)».
Для установок, настраиваемых вручную, применяйте предусмотренные по умолчанию соглашения об именах в настраиваемых URL-адресах. Если службы Службы SQL Server 2012 Reporting Services (SSRS) устанавливаются в качестве именованного экземпляра, включите имя экземпляра при создании виртуального каталога.
См. также
Задания
Основные понятия
Настройка URL-адресов сервера отчетов
Установка сервера отчетов служб Reporting Services в собственном режиме (SSRS)