Instalar Reporting Services e Internet Information Services en paralelo

Se aplica a: SQL Server 2016 (13.x) Reporting Services y versiones posteriores Power BI Report Server

Para obtener contenido relacionado con versiones anteriores de SQL Server Reporting Services (SSRS), vea SQL Server Reporting Services 2014.

Puede instalar y ejecutar SQL Server Reporting Services (SSRS) e Internet Information Services (IIS) en el mismo equipo. La versión de IIS que utilice determinará los problemas de interoperabilidad que debe tratar.

Versión de IIS Issues Descripción
8.0, 8.5 Las solicitudes destinadas a una aplicación las acepta una aplicación diferente.

HTTP.SYS exige reglas de prioridad para las reservas de direcciones URL. Puede que las solicitudes que se envían a aplicaciones con el mismo nombre de directorio virtual y que supervisan de manera conjunta el puerto 80, no alcancen el destino deseado si la reserva de direcciones URL es débil en relación con la reserva de direcciones URL de otra aplicación.
En determinadas condiciones, un extremo registrado que reemplaza otro extremo de dirección URL en el esquema de reserva de direcciones URL podría recibir solicitudes HTTP pensadas para la otra aplicación.

El uso de nombres de directorio virtual únicos para el servicio web del servidor de informes y el portal web ayuda a evitar este conflicto.

En este tema se proporciona información detallada acerca de este escenario.

Reglas de prioridad para las reservas de direcciones URL

Para poder resolver problemas de interoperabilidad entre IIS y Reporting Services, debe entender las reglas de prioridad de reserva de direcciones URL. Las reglas de prioridad se pueden generalizar en la instrucción siguiente: una reserva de direcciones URL que tiene valores definidos de forma más explícita se encuentra en la primera posición para recibir solicitudes que coinciden con la dirección URL.

  • Una reserva de direcciones URL que especifica un directorio virtual es más explícita que una que omite un directorio virtual.

  • Una reserva de direcciones URL que especifica una dirección única (mediante una dirección IP, un nombre de dominio completo, un nombre de equipo de red o un nombre de host) es más explícita que un carácter comodín.

  • Una reserva de direcciones URL que especifica un carácter comodín fuerte es más explícita que un carácter comodín débil.

Los ejemplos siguientes muestran un intervalo de reservas de direcciones URL, ordenado de más a menos explícito:

Ejemplo Solicitud
https://123.234.345.456:80/reports Recibe todas las solicitudes que se envían a https://123.234.345.456/reports o https://<computername>/reports si un servicio de nombre de dominio puede resolver la dirección IP a dicho nombre de host.
https://+:80/reports Recibe las solicitudes enviadas a cualquier dirección IP o nombre de host válido para dicho equipo siempre que la dirección URL contenga el nombre de directorio virtual "reports".
https://123.234.345.456:80 Recibe todas las solicitudes que especifican https://123.234.345.456 o https://<computername> si un servicio de nombre de dominio puede resolver la dirección IP a dicho nombre de host.
https://+:80 Recibe solicitudes que aún no se han recibido por otras aplicaciones, para cualquier extremo de aplicación asignado a Todas asignadas.
https://*:80 Recibe solicitudes que aún no se han recibido por otras aplicaciones, para cualquier extremo de aplicación asignado a Todas sin asignar.

Una indicación de que hay un conflicto en el puerto es que verá el siguiente mensaje de error: 'System.IO.FileLoadException: El proceso no puede tener acceso al archivo porque está siendo utilizado en otro proceso. (Excepción de HRESULT: 0x80070020).'.

Reservas de direcciones URL para IIS 8.0 y 8.5 con SQL Server Reporting Services

Dadas las reglas de prioridad descritas en la sección anterior, puede empezar a entender cómo las reservas de direcciones URL definidas para Reporting Services e IIS promueven la interoperabilidad. Reporting Services recibe las solicitudes que especifican explícitamente los nombres de directorio virtual para sus aplicaciones; IIS recibe todas las solicitudes restantes, que se pueden dirigir a continuación a las aplicaciones que se ejecutan dentro del modelo de proceso de IIS.

Application Reserva de direcciones URL Descripción Confirmación de solicitud
Servidor de informes https://+:80/ReportServer Carácter comodín fuerte en el puerto 80, con directorio virtual del servidor de informes. Recibe todas las solicitudes del puerto 80 que especifican el directorio virtual del servidor de informes. El servicio web del servidor de informes recibe todas las solicitudes para https://<nombreDeEquipo>/reportserver.
Portal web https://+:80/Reports Carácter comodín fuerte en el puerto 80, con directorio virtual Reports. Recibe todas las solicitudes del puerto 80 que especifican el directorio virtual de informes. El portal web recibe todas las solicitudes para https://<nombreDeEquipo>/reports.
IIS https://*:80/ Carácter comodín débil en el puerto 80. Recibe las solicitudes restantes del puerto 80 que no recibe ninguna otra aplicación.

Implementaciones en paralelo de SQL Server Reporting Services en IIS 8.0 y 8.5

Los problemas de interoperabilidad entre IIS y Reporting Services se producen cuando los sitios web de IIS tienen nombres de directorio virtual idénticos a los usados por Reporting Services. Por ejemplo, supongamos que tiene la siguiente configuración:

  • Un sitio web en IIS asignado al puerto 80 y un directorio virtual denominado "Reports".

  • Una instancia del servidor de informes instalada en la configuración predeterminada, donde la reserva de direcciones URL también especifica el puerto 80 y la aplicación del portal web también usa "Reports" como nombre del directorio virtual.

Dada esta configuración, el portal web recibe una solicitud enviada a https://<nombreDeEquipo>:80/reports. La aplicación a la que se acceda a través del directorio virtual Reports en IIS ya no recibe solicitudes una vez instalada la instancia del servidor de informes.

Si ejecuta implementaciones simultáneas de versiones anteriores y más recientes de Reporting Services, es probable que encuentre el problema de enrutamiento que acabamos de describir. Esto se debe a que todas las versiones de Reporting Services usan "ReportServer" y "Reports" como nombres de directorio virtual para las aplicaciones del servidor de informes y del portal web, lo que aumenta la probabilidad de que tenga los directorios virtuales "reports" y "reportserver" en IIS.

Para asegurarse de que todas las aplicaciones reciben solicitudes, siga estas directrices:

  • Para las instalaciones de Reporting Services, use nombres de directorios virtuales que no haya usado previamente ningún sitio web de IIS en el mismo puerto que Reporting Services. Si se produce un conflicto, instale Reporting Services en el modo "solo archivos" (mediante la opción "Instalar, pero no configurar el servidor de informes" del Asistente para la instalación), de manera que pueda configurar los directorios virtuales una vez finalizada la instalación. Una indicación de que hay un conflicto en la configuración es que verá el siguiente mensaje de error: System.IO.FileLoadException: El proceso no puede tener acceso al archivo porque está siendo utilizado en otro proceso. (Excepción de HRESULT: 0x80070020).

  • Para las instalaciones que configure manualmente, adopte las convenciones de nomenclatura predeterminadas en las direcciones URL que configure. Si instalas SQL Server 2016 (13.x) Reporting Services o una versión posterior (SSRS) como una instancia con nombre, incluye el nombre de la instancia al crear un directorio virtual.

Pasos siguientes

Configurar las direcciones URL del servidor de informes
Configurar una dirección URL
Instalar el servidor de informes en modo nativo de Reporting Services

¿Tiene alguna pregunta más? Puede plantear sus dudas en el foro de Reporting Services.