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.
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
Ostrzeżenie
Ta wersja ASP.NET Core nie jest już obsługiwana. Aby uzyskać więcej informacji, zobacz zasady pomocy technicznej platformy .NET i platformy .NET Core. Aby zapoznać się z aktualną wersją, zobacz artykuł w wersji .NET 10.
W tym artykule wyjaśniono, jak hostować i wdrażać Blazor WebAssembly przy użyciu usług Internet Information Services (IIS).
IIS to wydajny serwer statycznych plików dla aplikacji Blazor. Aby skonfigurować usługi IIS do hostowania Blazor, zobacz Tworzenie statycznej witryny internetowej w usługach IIS.
Opublikowane zasoby są tworzone w folderze /bin/Release/{TARGET FRAMEWORK}/publish lub bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, gdzie {TARGET FRAMEWORK} jest symbolem zastępczym dla struktury docelowej. Hostowanie zawartości publish folderu na serwerze internetowym lub w usłudze hostingu.
Plik web.config
Po opublikowaniu Blazorweb.config projektu zostanie utworzony plik z następującą konfiguracją usług IIS:
- typy MIME
- Kompresja HTTP jest włączona dla następujących typów MIME:
application/octet-streamapplication/wasm
- Reguły modułu ponownego zapisywania adresów URL są ustanawiane:
- Obsługa podkatalogu, w którym znajdują się zasoby statyczne aplikacji (
wwwroot/{PATH REQUESTED}). - Utwórz awaryjny routing aplikacji SPA, aby żądania dotyczące zasobów innych niż pliki zostały przekierowane do domyślnego dokumentu aplikacji w folderze zasobów statycznych (
wwwroot/index.html).
- Obsługa podkatalogu, w którym znajdują się zasoby statyczne aplikacji (
Użycie niestandardowego web.config
Aby użyć pliku niestandardowego web.config :
- Umieść plik niestandardowy
web.configw folderze głównym projektu. - Opublikuj projekt. Aby uzyskać więcej informacji, zobacz Host and deploy ASP.NET Core Blazor.
- Umieść plik niestandardowy
web.configw folderze głównym projektu. W przypadku hostowanego Blazor WebAssemblyrozwiązania umieść plik w folderze projektu Server. - Opublikuj projekt. W przypadku hostowanego rozwiązania Blazor WebAssembly publikować rozwiązanie z projektu Server. Aby uzyskać więcej informacji, zobacz Host and deploy ASP.NET Core Blazor.
Jeśli generowanie lub przekształcanie zestawu SDK web.config podczas publikacji nie przenosi pliku do zasobów opublikowanych w folderze publish lub modyfikuje konfigurację w pliku własnym web.config, użyj dowolnego podejścia według uznania, aby przejąć pełną kontrolę nad procesem.
Jeśli SDK nie generuje pliku, na przykład w autonomicznej aplikacji w lokalizacji Blazor WebAssembly lub
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot, gdzie symbol zastępczybin/Release/{TARGET FRAMEWORK}/browser-wasm/publishjest docelowym frameworkiem, ustaw właściwość{TARGET FRAMEWORK}na wartość<PublishIISAssets>w pliku projektutrue. Zazwyczaj w przypadku autonomicznych aplikacji WebAssembly jest to jedyne ustawienie wymagane do przeniesienia pliku niestandardowegoweb.configi uniemożliwienie przekształcenia pliku przez zestaw SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Wyłącz przekształcenie SDK
web.configw pliku projektu (.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Dodaj obiekt docelowy niestandardowy do pliku projektu (
.csproj), aby przenieść plik niestandardowyweb.config. W poniższym przykładzie deweloper umieścił plik niestandardowyweb.configw katalogu głównym projektu. Jeśli plik znajduje się w innym miejscu, określ ścieżkę do niego wweb.config. W poniższym przykładzie określono folderpublishza pomocą$(PublishDir), ale podaj ścieżkę doDestinationFolderdla niestandardowej lokalizacji wyjściowej.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Instalowanie modułu ponownego zapisywania adresów URL
Moduł ponownego zapisywania adresów URL jest wymagany do ponownego zapisywania adresów URL. Moduł nie jest instalowany domyślnie i nie jest dostępny do zainstalowania jako funkcja usługi roli serwera sieci Web (IIS). Moduł musi zostać pobrany ze strony IIS. Zainstaluj moduł za pomocą Instalatora platformy internetowej:
- Przejdź lokalnie do strony pobierania Modułu Przepisywania Adresów URL. W przypadku wersji angielskiej wybierz WebPI, aby pobrać instalator WebPI. W przypadku innych języków wybierz odpowiednią architekturę serwera (x86/x64), aby pobrać instalator.
- Skopiuj instalator do serwera. Uruchom instalatora. Wybierz przycisk Zainstaluj i zaakceptuj postanowienia licencyjne. Ponowne uruchomienie serwera nie jest wymagane po zakończeniu instalacji.
Konfigurowanie witryny internetowej
Ustaw fizyczną ścieżkę witryny internetowej do folderu aplikacji. Folder zawiera:
-
web.configPlik używany przez usługi IIS do konfigurowania witryny internetowej, w tym wymagane reguły przekierowania i typy zawartości plików. - Folder zasobów statycznych aplikacji.
Hostowanie jako podaplikacja w usługach IIS
Jeśli autonomiczna aplikacja jest hostowana jako podaplikacja usług IIS, wykonaj jedną z następujących czynności:
Wyłącz dziedziczonego obsługiwacza modułu ASP.NET Core.
Usuń procedurę obsługi w Blazor opublikowanym
web.configpliku aplikacji, dodając sekcję<handlers>do<system.webServer>sekcji pliku:<handlers> <remove name="aspNetCore" /> </handlers>Wyłącz dziedziczenie sekcji aplikacji głównej (nadrzędnej)
<system.webServer>przy użyciu elementu<location>z ustawioną wartościąinheritInChildApplicationsnafalse:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" ... /> </handlers> <aspNetCore ... /> </system.webServer> </location> </configuration>Uwaga
Wyłączenie dziedziczenia sekcji aplikacji głównej (nadrzędnej
<system.webServer>) jest domyślną konfiguracją opublikowanych aplikacji przy użyciu zestawu .NET SDK.
Usunięcie obsługującego lub wyłączenie dziedziczenia jest wykonywane oprócz konfigurowania podstawowej ścieżki aplikacji. Ustaw ścieżkę bazową aplikacji w pliku aplikacji index.html na alias IIS używany podczas konfigurowania podaplikacji w IIS.
Skonfiguruj ścieżkę podstawową aplikacji, postępując zgodnie ze wskazówkami w ścieżce podstawowej aplikacji ASP.NET CoreBlazor.
Kompresja Brotli i Gzip
Ta sekcja dotyczy tylko aplikacji autonomicznych Blazor WebAssembly .
Ta sekcja dotyczy tylko aplikacji autonomicznych Blazor WebAssembly . Aplikacje hostowane Blazor używają domyślnego pliku aplikacji web.config ASP.NET Core, a nie pliku połączonego w tej sekcji.
IIS można skonfigurować za pomocą web.config polecenia, aby obsługiwać skompresowane Blazor zasoby Brotli lub Gzip dla aplikacji autonomicznych Blazor WebAssembly. Przykładowy plik konfiguracji można znaleźć w temacie web.config.
Dodatkowa konfiguracja przykładowego web.config pliku może być wymagana w następujących scenariuszach:
- Specyfikacja aplikacji wymaga jednej z poniższych.
- Obsługa skompresowanych plików, które nie są skonfigurowane przez przykładowy
web.configplik. - Serwowanie skompresowanych plików skonfigurowanych przez przykładowy plik
web.configw formacie nieskompresowanym.
- Obsługa skompresowanych plików, które nie są skonfigurowane przez przykładowy
- Konfiguracja usług IIS serwera (na przykład
applicationHost.config) zapewnia domyślne ustawienia usług IIS na poziomie serwera. W zależności od konfiguracji na poziomie serwera, aplikacja może wymagać innej konfiguracji IIS niż to, co zawiera przykładowy plikweb.config.
Więcej informacji na temat niestandardowych plików web.config można znaleźć w sekcji Użycie niestandardowego web.config.
Rozwiązywanie problemów
Jeśli zostanie odebrany błąd 500 — wewnętrzny błąd serwera, a Menedżer usług IIS zgłasza błędy podczas próby uzyskania dostępu do konfiguracji witryny internetowej, upewnij się, że moduł ponownego zapisywania adresu URL jest zainstalowany. Gdy moduł nie jest zainstalowany, usługi IIS nie mogą przeanalizować pliku web.config. Uniemożliwia to Menedżerowi IIS załadowanie konfiguracji witryny internetowej oraz uniemożliwia witrynie obsługę plików statycznych Blazor.
Aby uzyskać więcej informacji na temat rozwiązywania problemów z wdrożeniami usług IIS, zobacz Rozwiązywanie problemów z programem ASP.NET Core w usłudze aplikacja systemu Azure i usługach IIS.
ASP.NET Core