Instalar o Reporting Services e os Serviços de Informações da Internet lado a lado
Você pode instalar e executar o SQL Server 2012 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.
Versão do IIS |
Problemas |
Descrição |
---|---|---|
IIS 6.0 e 7.0 |
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 Gerenciador de Relatórios, esse conflito será evitado. Informações detalhadas sobre esse cenário são fornecidas neste tópico. |
Regras de precedência para reservas de URL
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:
Exemplo |
Solicitação |
---|---|
http://123.234.345.456:80/reports |
Receberá todas as solicitações enviadas a http://123.234.345.456/reports ou HYPERLINK "http://<computername>/reports" http://<computername>/reports se um serviço de nome de domínio puder resolver o endereço IP para o nome do host. |
http://+: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”. |
http://123.234.345.456:80 |
Receberá qualquer solicitação que especifique http://123.234.345.456 ou http://<computername> se um serviço de nome de domínio puder resolver o endereço IP do nome do host. |
http://+: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. |
http://*: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 IIS 6.0 e 7.0 e Reporting Services do SQL Server 2012
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 |
http://+: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 http://<computername>/reportserver. |
Gerenciador de Relatórios |
http://+: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 Gerenciador de Relatórios recebe todas as solicitações para http://<computername>/reports. |
IIS |
http://*: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 Reporting Services do SQL Server 2012 e do SQL Server 2005 no IIS 6.0 ou 7.0
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 2012 instalada na configuração padrão, onde a reserva de URL também especifica a porta 80 e o aplicativo também usa "Reports" como nome do diretório virtual.
Dada essa configuração, uma solicitação enviada a http://<computername>:80/reports será recebida pelo Gerenciador de Relatórios. 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 2012 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 Gerenciador de Relatórios, 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 2012 Reporting Services (SSRS) como uma instância nomeada, inclua o nome da instância ao criar um diretório virtual.
Consulte também
Tarefas
Conceitos
Configurar URLs do Servidor de Relatório
Instalar o Servidor de relatórios de modo nativo do Reporting Services (SSRS)