Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) Usługi tworzenia i udostępniania raportów oraz nowsze wersje
Serwera raportów Power BI
Aby uzyskać zawartość związaną z poprzednimi wersjami usług SQL Server Reporting Services (SSRS), zobacz Co to są usługi SQL Server Reporting Services?
Możesz zainstalować i uruchomić usługi SQL Server Reporting Services (SSRS) i Internet Information Services (IIS) na tym samym komputerze. Wersja używanych usług IIS określa problemy z współdziałaniem, które należy rozwiązać.
| Wersja usług IIS | Issues | Description |
|---|---|---|
| 8.0, 8.5 | Żądania przeznaczone dla jednej aplikacji są akceptowane przez inną aplikację. HTTP.SYS wymusza reguły pierwszeństwa dla rezerwacji adresów URL. Żądania wysyłane do aplikacji, które mają taką samą nazwę katalogu wirtualnego i które wspólnie monitorują port 80, mogą nie dotrzeć do zamierzonego celu, jeśli rezerwacja adresu URL jest słaba względem rezerwacji adresów URL innej aplikacji. |
W pewnych warunkach zarejestrowany punkt końcowy, który zastępuje inny punkt końcowy adresu URL w schemacie rezerwacji adresów URL, może odbierać żądania HTTP przeznaczone dla innej aplikacji. Użycie unikatowych nazw katalogów wirtualnych dla usługi sieci Web serwera raportów i portalu internetowego pomaga uniknąć tego konfliktu. Szczegółowe informacje o tym scenariuszu podano w tym artykule. |
Reguły pierwszeństwa rezerwacji adresów URL
Zanim będzie można rozwiązać problemy ze współdziałaniem między usługami IIS i Reporting Services, należy poznać reguły pierwszeństwa rezerwacji adresów URL. Reguły pierwszeństwa można uogólnić do następującej instrukcji: rezerwacja adresu URL, która ma bardziej jawnie zdefiniowane wartości, jest najpierw w kolejce do odbierania żądań pasujących do adresu URL.
Rezerwacja adresu URL określająca katalog wirtualny jest bardziej jawna niż ta, która pomija katalog wirtualny.
Rezerwacja adresu URL określająca pojedynczy adres (za pomocą adresu IP, w pełni kwalifikowanej nazwy domeny, nazwy komputera sieciowego lub nazwy hosta) jest bardziej jawna niż symbol wieloznaczny.
Rezerwacja adresu URL określająca silne symbole wieloznaczne jest bardziej jawna niż słabe symbole wieloznaczne.
W poniższych przykładach przedstawiono szereg rezerwacji adresów URL uporządkowanych od najbardziej jawnych do najmniej jawnych:
| Example | Żądanie |
|---|---|
https://123.234.345.456:80/reports |
Odbiera wszystkie żądania wysyłane do https://123.234.345.456/reports lub https://<computername>/reports jeśli usługa nazw domen może rozpoznać adres IP tej nazwy hosta. |
https://+:80/reports |
Odbiera wszystkie żądania wysyłane do dowolnego adresu IP lub nazwy hosta prawidłowej dla tego komputera, pod warunkiem że adres URL zawiera nazwę katalogu wirtualnego "raporty". |
https://123.234.345.456:80 |
Odbiera każde żądanie określające https://123.234.345.456 lub https://<computername> jeśli usługa nazw domen może rozpoznać adres IP tej nazwy hosta. |
https://+:80 |
Odbiera żądania, które nie zostały jeszcze odebrane przez inne aplikacje, dotyczące punktów końcowych aplikacji zamapowanych na Wszystkie przypisane. |
https://*:80 |
Odbiera żądania, które nie zostały jeszcze odebrane przez inne aplikacje, dla punktów końcowych aplikacji mapowanych na wszystkie nieprzypisane. |
Jedną z oznak konfliktu portów jest wyświetlenie następującego komunikatu o błędzie: "System.IO.FileLoadException: Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces. (Wyjątek od HRESULT: 0x80070020)."
Rezerwacje adresów URL dla usług IIS 8.0, 8.5 z usługami SQL Server Reporting Services
Biorąc pod uwagę reguły pierwszeństwa opisane w poprzedniej sekcji, możesz zacząć rozumieć, jak rezerwacje adresów URL zdefiniowane dla usług Reporting Services i IIS promują współdziałanie. Usługi Reporting Services odbierają żądania, które jawnie określają nazwy katalogów wirtualnych dla swoich aplikacji; Usługi IIS odbierają wszystkie pozostałe żądania, które następnie mogą być kierowane do aplikacji uruchamianych w modelu procesów usług IIS.
| Aplikacja | Rezerwacja adresu URL | Description | Potwierdzenie odbioru żądania |
|---|---|---|---|
| Serwer raportów | https://+:80/ReportServer |
Mocne symbole wieloznaczne na porcie 80 z wirtualnym katalogiem na serwerze raportów. | Odbiera wszystkie żądania na porcie 80, które określają katalog wirtualny serwera raportów. Usługa sieci Web serwera raportów odbiera wszystkie żądania do https://< computername>/reportserver. |
| Portal internetowy | https://+:80/Reports |
Silne symbole wieloznaczne na porcie 80 z katalogiem wirtualnym Raporty. | Odbiera wszystkie żądania na porcie 80, które określają katalog wirtualny raportów. Portal internetowy odbiera wszystkie żądania do https://< computername>/reports. |
| IIS | https://*:80/ |
Słaby wildcard dla portu 80. | Odbiera wszystkie pozostałe żądania na porcie 80, które nie są odbierane przez inną aplikację. |
Wdrożenia równoległe usług SQL Server Reporting Services w usługach IIS 8.0, 8.5
Problemy z współdziałaniem usług IIS i Reporting Services występują, gdy witryny sieci Web usług IIS mają nazwy katalogów wirtualnych, które są identyczne z nazwami używanymi przez usługi Reporting Services. Załóżmy na przykład, że masz następującą konfigurację:
Witryna sieci Web w usługach IIS przypisana do portu 80 i katalogu wirtualnego o nazwie "Raporty".
Wystąpienie serwera raportów zainstalowane w konfiguracji domyślnej, gdzie rezerwacja adresu URL określa port 80, a aplikacja portalu sieciowego korzysta z "Raporty" jako nazwy katalogu wirtualnego.
Biorąc pod uwagę tę konfigurację, żądanie wysyłane do https://\<computername>:80/reports zostanie odebrane przez portal internetowy. Aplikacja, która jest dostępna za pośrednictwem katalogu wirtualnego Raporty w IIS, nie będzie już otrzymywać żądań po zainstalowaniu instancji serwera raportów.
Jeśli uruchamiasz wdrożenia równoległe starszych i nowszych wersji usług Reporting Services, prawdopodobnie wystąpi ten problem z routingiem. Występuje ten problem, ponieważ wszystkie wersje usług Reporting Services używają "ReportServer" i "Reports" jako nazw wirtualnych katalogów dla serwera raportów i aplikacji portalu internetowego, co zwiększa prawdopodobieństwo, że masz wirtualne katalogi "reports" i "reportserver" w usługach IIS.
Aby upewnić się, że wszystkie aplikacje odbierają żądania, postępuj zgodnie z następującymi wytycznymi:
W przypadku instalacji usług Reporting Services używaj nazw katalogów wirtualnych, które nie są jeszcze używane przez witrynę IIS na tym samym porcie, co Reporting Services. Jeśli wystąpi konflikt, zainstaluj usługi Reporting Services w trybie "tylko pliki" (przy użyciu opcji Zainstaluj, ale nie konfiguruj serwera w Kreatorze instalacji), aby można było skonfigurować katalogi wirtualne po zakończeniu instalacji. Jedną z oznak konfliktu konfiguracji jest komunikat o błędzie: System.IO.FileLoadException: Proces nie może uzyskać dostępu do pliku, ponieważ jest on używany przez inny proces. (Wyjątek od HRESULT: 0x80070020).
W przypadku instalacji skonfigurowanych ręcznie należy stosować domyślne konwencje nazewnictwa w skonfigurowanych adresach URL. Jeśli zainstalujesz program SQL Server 2016 (13.x) Reporting Services lub nowszy (SSRS) jako wystąpienie nazwane, uwzględnij nazwę wystąpienia podczas tworzenia katalogu wirtualnego.