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


Параллельная установка служб 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-адреса

Основные понятия

Настройка URL-адресов сервера отчетов

Установка сервера отчетов служб Reporting Services в собственном режиме (SSRS)