Gleichzeitiges Installieren von Reporting Services und Internetinformationsdiensten
Gilt für: SQL Server 2016 (13.x) Reporting Services und höher
Power BI-Berichtsserver
Inhalt im Zusammenhang mit früheren Versionen von SQL Server Reporting Services (SSRS) finden Sie unter Was ist SQL Server Reporting Services?.
Sie können SQL Server Reporting Services (SSRS) und die Internetinformationsdienste (IIS) auf dem gleichen Computer installieren und ausführen. Je nach IIS-Version treten bestimmte Interoperabilitätsprobleme auf.
IIS-Version | Probleme | BESCHREIBUNG |
---|---|---|
8.0, 8.5 | Für eine bestimmte Anwendung vorgesehene Anforderungen werden von einer anderen Anwendung angenommen. HTTP.SYS erzwingt Rangfolgeregeln für URL-Reservierungen. Anforderungen, die an Anwendungen gesendet werden, die den gleichen virtuellen Verzeichnisnamen aufweisen und gemeinsam Port 80 überwachen, erreichen möglicherweise nicht das vorgesehene Ziel, wenn die URL-Reservierung im Vergleich zur URL-Reservierung einer anderen Anwendung schwach ist. |
Unter bestimmten Bedingungen empfängt ein registrierter Endpunkt, der einen anderen URL-Endpunkt im URL-Reservierungsschema außer Kraft setzt, HTTP-Anforderungen für die andere Anwendung. Durch die Verwendung eindeutiger Namen für die virtuellen Verzeichnisse des Berichtsserver-Webdiensts und des Webportals kann dieser Konflikt vermieden werden. Detaillierte Informationen über dieses Szenario sind in diesem Artikel enthalten. |
Rangfolgeregeln für URL-Reservierungen
Um die Interoperabilitätsprobleme zwischen IIS und Reporting Services lösen zu können, müssen Sie zunächst die URL-Reservierungsrangfolgeregeln verstehen. Rangfolgeregeln können folgendermaßen beschrieben werden: Je expliziter eine URL-Reservierung definiert ist, umso eher erhält sie die Anforderungen für diese URL.
Eine URL-Reservierung, die ein virtuelles Verzeichnis angibt, ist expliziter als eine URL-Reservierung ohne virtuelles Verzeichnis.
Eine URL-Reservierung, die eine einzige Adresse angibt (mittels einer IP-Adresse, eines vollqualifizierten Domänennamens, eines Computernamens im Netzwerk oder eines Hostnamens) ist expliziter als ein Platzhalter.
Eine URL-Reservierung, die einen starken Platzhalter angibt, ist expliziter als eine URL-Reservierung mit einem schwachen Platzhalter.
In den folgenden Beispielen werden verschiedene URL-Reservierungen gezeigt. Als Erste steht die URL-Reservierung mit der höchsten Explizität, als Letzte die mit der geringsten Explizität:
Beispiel | Anforderung |
---|---|
https://123.234.345.456:80/reports |
Empfängt alle Anforderungen, die an https://123.234.345.456/reports oder https://<computername>/reports gesendet werden, wenn ein Domain Name Service die IP-Adresse in diesen Hostnamen auflösen kann. |
https://+:80/reports |
Empfängt alle Anforderungen, die an eine IP-Adresse oder einen Hostnamen gesendet werden, die bzw. der gültig für diesen Computer ist, sofern die URL den Namen des virtuellen Verzeichnisses "reports" enthält. |
https://123.234.345.456:80 |
Empfängt alle Anforderungen, die https://123.234.345.456 oder https://<computername> angeben, wenn ein Domain Name Service die IP-Adresse in diesen Hostnamen auflösen kann. |
https://+:80 |
Empfängt für alle Anwendungsendpunkte, die Alle zugewiesenenzugeordnet sind, Anforderungen, die nicht bereits von anderen Anwendungen empfangen wurden. |
https://*:80 |
Empfängt für Anwendungsendpunkte, die Alle nicht zugewiesenenzugeordnet sind, Anforderungen, die nicht bereits von anderen Anwendungen empfangen wurden. |
Ein Zeichen für einen Portkonflikt ist die folgende Fehlermeldung: 'System.IO.FileLoadException: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (Ausnahme von HRESULT: 0x80070020).
URL-Reservierungen für IIS 8.0, 8.5 mit SQL Server Reporting Services
Anhand der im vorherigen Abschnitt beschriebenen Rangfolgeregeln wird deutlich, wie die für Reporting Services und IIS definierten URL-Reservierungen zur Interoperabilität beitragen. Reporting Services empfängt Anforderungen, die die Namen der virtuellen Verzeichnisse seiner Anwendungen explizit angeben; IIS empfängt alle verbleibenden Anforderungen, die dann an Anwendungen umgeleitet werden können, die innerhalb des IIS-Verarbeitungsmodells ausgeführt werden.
Application | URL-Reservierung | BESCHREIBUNG | Anforderungsempfang |
---|---|---|---|
Berichtsserver | https://+:80/ReportServer |
Starker Platzhalter an Port 80, mit virtuellem Verzeichnis "ReportServer". | Empfängt alle Anforderungen an Port 80, die das virtuelle Verzeichnis "ReportServer" angeben. Der Berichtsserver-Webdienst empfängt alle Anforderungen an https://<Computername>/reportserver. |
Webportal | https://+:80/Reports |
Starker Platzhalter an Port 80, mit virtuellem Verzeichnis "Reports". | Empfängt alle Anforderungen an Port 80, die das virtuelle Verzeichnis "reports" angeben. Das Webportal empfängt alle Anforderungen an https://<Computername>/reports. |
IIS | https://*:80/ |
Schwacher Platzhalter an Port 80. | Empfängt an Port 80 alle verbleibenden Anforderungen, die nicht von einer anderen Anwendung empfangen wurden. |
Parallele Bereitstellungen von SQL Server Reporting Services in IIS 8.0, 8.5
Interoperabilitätsprobleme zwischen IIS und Reporting Services treten auf, wenn IIS-Websites virtuelle Verzeichnisnamen haben, die mit den von Reporting Services verwendeten Namen identisch sind. Gehen wir beispielsweise von folgender Konfiguration aus:
Eine Website in IIS, die Port 80 und einem virtuellen Verzeichnis mit dem Namen "Reports" zugewiesen ist.
Eine in der Standardkonfiguration installierte Berichtsserverinstanz, bei der die URL-Reservierung auch Port 80 angibt und die Webportal-Anwendung auch „Reports“ als Namen des virtuellen Verzeichnisses verwendet.
Mit dieser Konfiguration wird eine Anfrage, die an https://\<computername>:80/reports
gesendet wird, vom Webportal empfangen. Die Anwendung, auf die über das virtuelle Verzeichnis „Reports“ in IIS zugegriffen wird, empfängt nach der Installation der Berichtsserverinstanz keine Anforderungen mehr.
Wenn Sie die Bereitstellungen älterer und neuerer Versionen von Reporting Services gleichzeitig ausführen, werden Sie wahrscheinlich auf dieses Routingproblem stoßen. Sie sehen dieses Problem, weil alle Versionen von Reporting Services "ReportServer" und "Reports" als virtuelle Verzeichnisnamen für den Berichtsserver und die Webportalanwendungen verwenden und damit die Wahrscheinlichkeit erhöht wird, dass in IIS die virtuellen Verzeichnisse „reports“ und „reportserver“ vorhanden sind.
Um sicherzustellen, dass alle Anwendungen Anforderungen empfangen, sollten Sie diesen Richtlinien folgen:
In Reporting Services-Installationen sollten Sie Namen für virtuelle Verzeichnisse angeben, die nicht bereits von einer IIS-Website an dem Port verwendet werden, den auch Reporting Services verwendet. Wenn ein Konflikt auftritt, müssen Sie Reporting Services im Dateimodus installieren (über die Option Server installieren, jedoch nicht konfigurieren im Installations-Assistenten), sodass Sie die virtuellen Verzeichnisse nach dem Setup konfigurieren können. Ein Zeichen für einen Konflikt in Ihrer Konfiguration ist die folgende Fehlermeldung: 'System.IO.FileLoadException: Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. (Ausnahme von HRESULT: 0x80070020).
Übernehmen Sie für Installationen, die Sie manuell konfigurieren, die Standardnamenskonventionen in den URLs. Wenn Sie SQL Server 2016 (13.x) Reporting Services oder höher (SSRS) als benannte Instanz installieren, müssen Sie beim Erstellen eines virtuellen Verzeichnisses den Instanznamen angeben.
Zugehöriger Inhalt
- Konfigurieren von Berichtsserver-URLs
- Konfigurieren einer URL
- Install Reporting Services native mode report server
Weitere Fragen? Stellen Sie eine Frage im Reporting Services-Forum.