Instalar o Reporting Services e os Serviços de Informações da Internet lado a lado (Modo Nativo do SSRS)

 

Publicado: dezembro de 2016

Você pode instalar e executar o SQL Server 2016 Reporting Services (SSRS) e o IIS (Serviços de Informações da Internet) no mesmo computador. A versão do IIS utilizada determina os problemas de interoperabilidade a serem resolvidos.

Aplica-se a: Reporting Services Modo nativo
Versão do IISProblemasDescrição
8.0, 8.5As solicitações dirigidas a um aplicativo são aceitas por um aplicativo diferente.

O HTTP.SYS impõe as regras de precedência a reservas de URL. As solicitações enviadas a aplicativos com o mesmo nome de diretório virtual e que, ao mesmo tempo, monitoram a porta 80 podem não alcançar o destino pretendido se a reserva de URL for fraca, em relação à reserva de URL de outro aplicativo.
Em determinadas condições, um ponto de extremidade registrado que substitui outro ponto de extremidade de URL no esquema de reserva de URL pode receber solicitações HTTP destinadas a outro aplicativo.

Se você usar nomes do diretório virtual exclusivos para o serviço Web Servidor de Relatórios e o portal da Web , esse conflito será evitado.

Informações detalhadas sobre esse cenário são fornecidas neste tópico.

Antes de tratar de problemas de interoperabilidade entre o IIS e o Reporting Services, você deve entender as regras de precedência de reserva de URL. As regras de precedência podem ser generalizadas na seguinte instrução: uma reserva de URL tem valores definidos mais explicitamente é a primeira a receber solicitações que correspondam à URL.

  • Uma reserva de URL que especifica um diretório virtual é mais explícita que uma que omite um diretório virtual.

  • Uma reserva de URL que especifica um único endereço (por meio de um endereço IP, um nome de domínio totalmente qualificado, um nome de computador de rede ou um nome do host) é mais explícita que um curinga.

  • Uma reserva de URL que especifica um curinga forte é mais explícita que um curinga fraco.

Os seguintes exemplos mostram um intervalo de reservas de URL, ordenado do mais explícito ao menos explícito:

ExemploSolicitação
http://123.234.345.456:80/reportsRecebe todas as solicitações enviadas a http://123.234.345.456/reports ou http://<computername>/reports se um serviço de nomes de domínio pode resolver o endereço IP para o nome do host.
http://+:80/reportsRecebe todas as solicitações enviadas a qualquer endereço IP ou nome do host válido para esse computador desde que a URL contenha o nome do diretório virtual “reports”.
http://123.234.345.456:80Recebe qualquer solicitação que especifica http://123.234.345.456 ou http://<computername> se um serviço de nomes de domínio pode resolver o endereço IP do nome do host.
http://+:80Recebe solicitações que ainda não foram recebidas por outros aplicativos, para todos os pontos de extremidade do aplicativo mapeado como Todos Atribuídos.
http://*:80Recebe solicitações que ainda não foram recebidas por outros aplicativos, para todos os pontos de extremidade do aplicativo mapeado como Todos Não Atribuídos.

Uma indicação de um conflito de porta é que você verá a seguinte mensagem de erro: 'System.IO.FileLoadException: O processo não pode acessar o arquivo porque está sendo usado por outro processo. (Exceção de HRESULT: 0x80070020).'

Dadas as regras de precedência na seção anterior, você pode começar a compreender como as reservas de URL definidas para o Reporting Services e o ISS promovem a interoperabilidade. O Reporting Services recebe solicitações que especificam explicitamente os nomes de diretório virtuais para seus aplicativos; o IIS recebe todas as solicitações restantes, que podem ser direcionadas a aplicativos executados no modelo de processo do IIS.

AplicativoReserva de URLDescriçãoRecebimento de solicitação
Servidor de relatóriohttp://+:80/ReportServerCuringa forte na porta 80, com diretório virtual de servidor de relatório.Recebe todas as solicitações na porta 80 que especificam o diretório virtual de servidor de relatório. O serviço Web do Servidor de Relatórios recebe todas as solicitações para http://<computername>/reportserver.
Portal da Webhttp://+:80/ReportsCuringa forte na porta 80, com o diretório virtual Reports.Recebe todas as solicitações na porta 80 que especificam o diretório virtual de relatórios. O portal da Web recebe todas as solicitações para http://<computername>/reports.
IIShttp://*:80/Curinga fraco na porta 80.Recebe todas as solicitações restantes na porta 80 não recebidas por outro aplicativo.

Os problemas de interoperabilidade entre o ISS e o Reporting Services ocorrem quando sites do IIS têm nomes de diretório virtual idênticos aos usados pelo Reporting Services. Por exemplo, suponha que você tenha a seguinte configuração:

  • Um site no IIS atribuído à porta 80 e um diretório virtual chamado "Reports".

  • Uma instância do servidor de relatório SQL Server 2016 instalada na configuração padrão, onde a reserva de URL também especifica a porta 80 e o aplicativo portal da Web também usa "Reports" como nome do diretório virtual.

Devido a essa configuração, uma solicitação enviada a http://<computername>:80/reports será recebida pelo portal da Web. O aplicativo acessado por meio do diretório virtual Reports no IIS não receberá mais solicitações depois que a instância do servidor de relatório SQL Server 2016 for instalada.

Se você estiver executando implantações lado a lado de versões mais antigas e mais recentes do Reporting Services, é provável que encontre o problema de roteamento descrito. Isso porque todas as versões do Reporting Services usam “ReportServer” e “Reports” como nomes de diretório virtual para os aplicativos de servidor de relatório e do portal da Web , aumentando a probabilidade de haver um diretório virtual "reports" e "reportserver" no IIS.

Para garantir que todos os aplicativos recebam solicitações, siga estas diretrizes:

  • Para instalações do Reporting Services, use nomes de diretório virtual ainda não utilizados por um site do IIS na mesma porta que o Reporting Services. Se houver conflito, instale o Reporting Services no modo “somente arquivos” (usando a instalação, mas não configurando a opção do servidor no Assistente de Instalação), para que você possa configurar os diretórios virtuais depois que a instalação for concluída. Uma indicação de que a sua configuração possui um conflito de porta é que você verá a seguinte mensagem de erro: System.IO.FileLoadException: O processo não pode acessar o arquivo porque está sendo usado por outro processo. (Exceção de HRESULT: 0x80070020).

  • Para instalações configuradas manualmente, adote as convenções de nomenclatura padrão nas URLs configuradas. Se você instalar o SQL Server 2016 Reporting Services (SSRS) como uma instância nomeada, inclua o nome da instância ao criar um diretório virtual.

Configurar as URLs do servidor de relatório (SSRS Configuration Manager)
Configurar uma URL (SSRS Configuration Manager)
Instalar o servidor de relatórios de modo nativo do Reporting Services

Contribuições da comunidade

ADICIONAR
Mostrar: