Instalar o Reporting Services e os Serviços de Informações da Internet lado a lado
Aplica-se a: SQL Server 2016 (13.x) Reporting Services e versões posteriores Servidor de Relatórios do Power BI
Para obter conteúdo relacionado a versões anteriores do SSRS (SQL Server Reporting Services), confira O que é o SQL Server Reporting Services?
Você pode instalar e executar o SSRS (SQL Server Reporting Services) 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.
Versão do IIS | Problemas | Descrição |
---|---|---|
8.0, 8.5 | As 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 artigo. |
Regras de precedência para reservas de URL
Para tratar de problemas de interoperabilidade entre o IIS e o Reporting Services, é preciso 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:
Exemplo | Solicitação |
---|---|
https://123.234.345.456:80/reports |
Recebe todas as solicitações enviadas a https://123.234.345.456/reports ou https://<computername>/reports se um serviço de nomes de domínio pode resolver o endereço IP para o nome do host. |
https://+:80/reports |
Recebe 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”. |
https://123.234.345.456:80 |
Recebe qualquer solicitação que especifica https://123.234.345.456 ou https://<computername> se um serviço de nomes de domínio pode resolver o endereço IP para esse nome do host. |
https://+:80 |
Recebe solicitações que ainda não foram recebidas por outros aplicativos, para todos os pontos de extremidade do aplicativo mapeado como Todos Atribuídos. |
https://*:80 |
Recebe 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).'
Reservas de URL para o IIS 8.0, 8.5 com o SQL Server Reporting Services
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.
Aplicativo | Reserva de URL | Descrição | Recebimento de solicitação |
---|---|---|---|
Servidor de relatório | https://+:80/ReportServer |
Curinga 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 Servidor de Relatórios recebe todas as solicitações para https://<nomedocomputador>/reportserver. |
Portal da Web | https://+:80/Reports |
Curinga 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 https://<nomedocomputador>/reports. |
IIS | https://*:80/ |
Curinga fraco na porta 80. | Recebe todas as solicitações restantes na porta 80 não recebidas por outro aplicativo. |
Implantações lado a lado do SQL Server Reporting Services no IIS 8.0 a 8.5
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 nomes 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 instalada na configuração padrão, em que a reserva de URL também especifica a porta 80 e o aplicativo do portal da Web também usa “Reports” como o nome do diretório virtual.
Dada essa configuração, uma solicitação que é enviada para https://\<computername>:80/reports
é 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 for instalada.
Se você executar implantações lado a lado de versões mais antigas e mais recentes do Reporting Services, você provavelmente enfrentará esse problema de roteamento. Você verá esse problema 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 (13.x) Reporting Services (SSRS) ou posterior como uma instância nomeada, inclua o nome da instância ao criar um diretório virtual.