Installare side-by-side Reporting Services e Internet Information Services (modalità nativa SSRS)
È possibile installare ed eseguire SQL Server 2014 Reporting Services (SSRS) e Internet Information Services (IIS) nello stesso computer. La versione di IIS utilizzata determina i problemi di interoperabilità che è necessario risolvere.
Si applica a: SQL Server Reporting Services (modalità nativa) |
Versione di IIS | Problemi | Descrizione |
---|---|---|
IIS 6.0, 7.0, 8.0, 8.5 | Richieste destinate a un'applicazione vengono accettate da un'applicazione diversa. HTTP.SYS applica regole di precedenza per le prenotazioni URL. Le richieste inviate ad applicazioni con lo stesso nome di directory virtuale e che eseguono congiuntamente il monitoraggio della porta 80 potrebbero non raggiungere la destinazione desiderata se la prenotazione URL è debole rispetto alla prenotazione URL di un'altra applicazione. |
In determinate condizioni, un endpoint registrato che prevale su un altro endpoint URL nello schema di prenotazione degli URL potrebbe ricevere richieste HTTP destinate all'altra applicazione. L'utilizzo di nomi univoci per le directory virtuali per il servizio Web ReportServer e Gestione report consente di evitare questo conflitto. Informazioni dettagliate su questo scenario vengono fornite nel presente argomento. |
Regole di precedenza per le prenotazioni URL
Prima di poter passare alla risoluzione dei problemi di interoperabilità tra IIS e Reporting Services, è necessario comprendere le regole di precedenza relative alle prenotazioni di URL. Le regole di precedenza possono essere generalizzate nell'affermazione in base alla quale una prenotazione URL che ha valori definiti in modo più esplicito ha la precedenza nella ricezione di richieste che corrispondono all'URL.
Una prenotazione URL che specifica una directory virtuale è più esplicita di una prenotazione che la omette.
Una prenotazione URL che specifica un solo indirizzo (come indirizzo IP, nome di dominio completo, nome di un computer di rete o nome host) è più esplicita rispetto a un carattere jolly.
Una prenotazione URL che specifica un carattere jolly complesso è più esplicita rispetto a una prenotazione che utilizza un carattere jolly vulnerabile.
Negli esempi seguenti è mostrato un intervallo di prenotazioni URL, ordinate dalle più esplicite a quelle meno esplicite:
Esempio | Richiesta |
---|---|
http://123.234.345.456:80/reports | Riceve tutte le richieste inviate a http://123.234.345.456/reports o http://< computername>/report se un servizio nome di dominio può risolvere l'indirizzo IP a tale nome host. |
http://+:80/reports | Riceve tutte le richieste inviate a qualsiasi indirizzo IP o nome host valido per tale computer finché l'URL contiene il nome della directory virtuale "reports". |
http://123.234.345.456:80 | Riceve qualsiasi richiesta che specifica http://123.234.345.456 o http://< computername> se un servizio nome di dominio può risolvere l'indirizzo IP a tale nome host. |
http://+:80 | Riceve le richieste che non sono già state ricevute da altre applicazioni, per qualsiasi endpoint dell'applicazione di cui è stato eseguito il mapping all'opzione Tutti assegnati. |
http://*:80 | Riceve le richieste che non sono già state ricevute da altre applicazioni, per gli endpoint dell'applicazione di cui è stato eseguito il mapping all'opzione Non assegnati. |
Un'indicazione di un conflitto di porte è la visualizzazione del messaggio di errore seguente: "System.IO.FileLoadException: Il processo non può accedere al file perché è in uso da un altro processo. (Eccezione da HRESULT: 0x80070020)".
Prenotazioni URL per IIS 6.0, 7.0, 8.0, 8.5 con SQL Server 2014 Reporting Services
Stabilite le regole di precedenza descritte nella sezione precedente, è possibile iniziare a comprendere in che modo le prenotazioni URL definite per Reporting Services e IIS agevolino l'interoperabilità. Reporting Services riceve le richieste che specificano in modo esplicito i nomi delle directory virtuali per le proprie applicazioni, mentre IIS riceve tutte le richieste rimanenti che possono pertanto essere dirette ad applicazioni eseguite all'interno del modello di processo di IIS.
Applicazione | Prenotazione URL | Descrizione | Ricezione richiesta |
---|---|---|---|
Server di report | http://+:80/ReportServer | Carattere jolly complesso sulla porta 80, con directory virtuale del server di report. | Riceve sulla porta 80 tutte le richieste che specificano la directory virtuale del server di report. Il servizio Web del server di report riceve tutte le richieste a http://< computername>/reportserver. |
Gestione report | http://+:80/Reports | Carattere jolly complesso sulla porta 80, con directory virtuale Reports. | Riceve sulla porta 80 tutte le richieste che specificano la directory virtuale reports. Gestione report riceve tutte le richieste per http://< computername>/report. |
IIS | http://*:80/ | Carattere jolly vulnerabile sulla porta 80. | Riceve sulla porta 80 tutte le richieste rimanenti che non vengono ricevute da un'altra applicazione. |
Distribuzioni side-by-side di SQL Server 2014 e SQL Server 2005 Reporting Services in IIS 6.0, 7.0, 8.0, 8.5
I problemi di interoperabilità tra IIS e Reporting Services si verificano quando i nomi delle directory virtuali dei siti Web di IIS sono identici a quelli utilizzati da Reporting Services. Si supponga ad esempio di disporre della configurazione seguente:
Un sito Web in IIS assegnato alla porta 80 e una directory virtuale denominata "Reports".
Un'istanza del server di report SQL Server 2014 installata nella configurazione predefinita, in cui la prenotazione URL specifica anche la porta 80 e l'applicazione Gestione report usa anche "Report" per il nome della directory virtuale.
Data questa configurazione, verrà ricevuta da Gestione report una richiesta inviata a http://< computername>:80/reports. L'applicazione a cui si accede tramite la directory virtuale Report in IIS non riceverà più richieste dopo l'installazione di SQL Server istanza del server di report 2014.
Se si eseguono distribuzioni side-by-side di versioni meno recenti e più recenti di Reporting Services, è possibile che si verifichi il problema di routing appena descritto, Ciò avviene perché tutte le versioni di Reporting Services usano "ReportServer" e "Report" come nomi di directory virtuali per le applicazioni server di report e Gestione report, aumentando la probabilità di avere una directory virtuale "report" e "reportserver" in IIS.
Per garantire che tutte le applicazioni ricevano richieste, adottare le linee guida seguenti:
Per le installazioni di Reporting Services, utilizzare nomi delle directory virtuali che non siano già utilizzati da un sito Web di IIS sulla stessa porta di Reporting Services. Se si verifica un conflitto, installare Reporting Services in modalità "solo file", utilizzando l'opzione Installa senza configurare l'opzione server dell'Installazione guidata, in modo che sia possibile configurare le directory virtuali al termine dell'installazione. Un'indicazione della configurazione come conflitto è la visualizzazione del messaggio di errore seguente: System.IO.FileLoadException: Il processo non può accedere al file perché è in uso da un altro processo. (Eccezione da HRESULT: 0x80070020).
Per installazioni da configurare manualmente, adottare le convenzioni di denominazione predefinite negli URL configurati. Se si installa SQL Server 2014 Reporting Services (SSRS) come istanza denominata, includere il nome dell'istanza durante la creazione di una directory virtuale.
Vedere anche
Configurare gli URL del server di report (Configuration Manager SSRS)
Configurare un URL (Gestione configurazione SSRS)
Installare un server di report in modalità nativa di Reporting Services