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