Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 10-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der .NET- und .NET Core-Supportrichtlinie. Informationen zum aktuellen Release finden Sie in der .NET 9-Version dieses Artikels.
In diesem Artikel wird erläutert, wie Blazor WebAssembly mithilfe von Internet Information Services (IIS) gehostet und bereitgestellt wird.
IIS ist ein fähiger statischer Dateiserver für Blazor Apps. Informationen zum Konfigurieren von IIS zum Hosten Blazorfinden Sie unter Erstellen einer statischen Website in IIS.
Veröffentlichte Objekte werden im /bin/Release/{TARGET FRAMEWORK}/publish Oder bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish Ordner erstellt, wobei der {TARGET FRAMEWORK} Platzhalter das Zielframework ist. Hosten Sie den Inhalt des publish Ordners auf dem Webserver oder Hostingdienst.
web.config-Datei
Wenn ein Blazor Projekt veröffentlicht wird, wird eine web.config Datei mit der folgenden IIS-Konfiguration erstellt:
- MIME-Typen
- DIE HTTP-Komprimierung ist für die folgenden MIME-Typen aktiviert:
application/octet-streamapplication/wasm
- URL Rewrite Module-Regeln werden eingerichtet:
- Stellen Sie das Unterverzeichnis bereit, in dem sich die statischen Ressourcen der App befinden (
wwwroot/{PATH REQUESTED}). - Erstellen Sie das SPA-Fallback-Routing, sodass Anforderungen für nicht-dateibasierte Assets an das Standarddokument der App im statischen Ressourcenordner (
wwwroot/index.html) umgeleitet werden.
- Stellen Sie das Unterverzeichnis bereit, in dem sich die statischen Ressourcen der App befinden (
Verwendung einer benutzerdefinierten web.config
So verwenden Sie eine benutzerdefinierte web.config Datei:
- Platzieren Sie die benutzerdefinierte
web.configDatei im Stammordner des Projekts. - Veröffentlichen Sie das Projekt. Weitere Informationen finden Sie unter ASP.NET Core hosten und bereitstellenBlazor.
- Platzieren Sie die benutzerdefinierte
web.configDatei im Stammordner des Projekts. Platzieren Sie die Datei für eine gehostete Blazor WebAssemblyLösung im Ordner des Server Projekts. - Veröffentlichen Sie das Projekt. Veröffentlichen Sie für eine gehostete Blazor WebAssembly-Lösung die Lösung aus dem Server-Projekt. Weitere Informationen finden Sie unter ASP.NET Core hosten und bereitstellenBlazor.
Wenn die Generierung oder Transformation des web.config SDK während der Veröffentlichung entweder die Datei nicht in die veröffentlichten Assets im publish Ordner verschiebt oder die benutzerdefinierte Konfiguration in Ihrer benutzerdefinierten web.config Datei geändert wird, verwenden Sie bei Bedarf einen der folgenden Ansätze, um den Prozess vollständig zu kontrollieren:
Wenn das SDK die Datei nicht generiert, z. B. in einer eigenständigen Blazor WebAssembly App bei
/bin/Release/{TARGET FRAMEWORK}/publish/wwwrootoderbin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, wobei der{TARGET FRAMEWORK}Platzhalter das Zielframework ist, legen Sie die<PublishIISAssets>Eigenschafttruein der Projektdatei (.csproj) fest. In der Regel für eigenständige WebAssembly-Apps ist dies die einzige erforderliche Einstellung, um eine benutzerdefinierteweb.configDatei zu verschieben und die Transformation der Datei durch das SDK zu verhindern.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Deaktivieren Sie die SDK-Transformation
web.configin der Projektdatei (.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Fügen Sie der Projektdatei (
.csproj) ein benutzerdefiniertes Ziel hinzu, um eine benutzerdefinierteweb.configDatei zu verschieben. Im folgenden Beispiel wird die benutzerdefinierteweb.configDatei vom Entwickler im Stammverzeichnis des Projekts platziert. Wenn sich dieweb.configDatei an anderer Stelle befindet, geben Sie den Pfad zur Datei inSourceFiles. Im folgenden Beispiel wird derpublish-Ordner mit$(PublishDir)angegeben, aber es wird ein Pfad zuDestinationFolderfür einen benutzerdefinierten Ausgabespeicherort bereitgestellt.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Installieren des URL-Neuschreibmoduls
Das URL Rewrite Module ist erforderlich, um URLs neu zu schreiben. Das Modul ist standardmäßig nicht installiert, und es ist nicht für die Installation als Iis-Rollendienstfunktion (Web Server) verfügbar. Das Modul muss von der IIS-Website heruntergeladen werden. Verwenden Sie den Webplattform-Installer, um das Modul zu installieren:
- Navigieren Sie lokal zur Seite "URL Rewrite Module downloads". Wählen Sie für die englische Version WebPI aus, um das WebPI-Installationsprogramm herunterzuladen. Wählen Sie für andere Sprachen die entsprechende Architektur für den Server (x86/x64) aus, um das Installationsprogramm herunterzuladen.
- Kopieren Sie das Installationsprogramm auf den Server. Führen Sie das Installationsprogramm aus. Wählen Sie die Schaltfläche " Installieren " aus, und akzeptieren Sie die Lizenzbedingungen. Nach Abschluss der Installation ist kein Serverneustart erforderlich.
Konfigurieren der Website
Legen Sie den physischen Pfad der Website auf den Ordner der App fest. Der Ordner enthält:
- Die
web.configDatei, die IIS zum Konfigurieren der Website verwendet, einschließlich der erforderlichen Umleitungsregeln und Dateiinhaltstypen. - Der statische Ressourcenordner der App.
Host als IIS-Unter-App
Wenn eine eigenständige App als IIS-Unter-App gehostet wird, führen Sie eine der folgenden Aktionen aus:
Deaktivieren Sie den geerbten ASP.NET Core Module-Handler.
Entfernen Sie den Handler in der veröffentlichten Datei der Blazor-App, indem Sie dem
web.config-Abschnitt der Datei einen<handlers>-Abschnitt zum<system.webServer>-Abschnitt hinzufügen.<handlers> <remove name="aspNetCore" /> </handlers>Deaktivieren Sie die Vererbung des Abschnitts
<system.webServer>der Stamm-App (übergeordnete App) mithilfe eines<location>Elements, dasinheritInChildApplicationsauf Folgendesfalsefestgelegt ist:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" ... /> </handlers> <aspNetCore ... /> </system.webServer> </location> </configuration>Hinweis
Das Deaktivieren der Vererbung des Abschnitts
<system.webServer>der Stamm-App (übergeordnete App) ist die Standardeinstellung für veröffentlichte Apps mit dem .NET SDK.
Das Entfernen des Handlers oder deaktivieren der Vererbung wird zusätzlich zum Konfigurieren des Basispfads der App ausgeführt. Legen Sie den App-Basispfad in der Datei der App index.html auf den IIS-Alias fest, der beim Konfigurieren der Unter-App in IIS verwendet wird.
Konfigurieren Sie den Basispfad der App, indem Sie den Anweisungen in ASP.NET Core-App-Basispfad Blazorfolgen.
Brotli- und Gzip-Komprimierung
Dieser Abschnitt gilt nur für eigenständige Blazor WebAssembly Apps.
Dieser Abschnitt gilt nur für eigenständige Blazor WebAssembly Apps. Gehostete Apps verwenden eine standardmäßige Blazor ASP.NET Core-App-Datei web.config , nicht die in diesem Abschnitt verknüpfte Datei.
IIS kann über web.config so konfiguriert werden, dass Brotli- oder Gzip-komprimierte Blazor Ressourcen für eigenständige Blazor WebAssembly Apps bereitgestellt werden. Eine Beispielkonfigurationsdatei finden Sie unter web.config.
In den folgenden Szenarien kann eine zusätzliche Konfiguration der Beispieldatei web.config erforderlich sein:
- Die Spezifikation der App ruft eine der folgenden Aktionen auf:
- Bereitstellung komprimierter Dateien, die nicht durch die Beispieldatei
web.configkonfiguriert sind. - Bereitstellung von durch die Beispieldatei
web.configkonfigurierten komprimierten Dateien in einem unkomprimierten Format.
- Bereitstellung komprimierter Dateien, die nicht durch die Beispieldatei
- Die IIS-Konfiguration des Servers (z. B.
applicationHost.config) stellt IIS-Standardwerte auf Serverebene bereit. Je nach Konfiguration auf Serverebene erfordert die App möglicherweise eine andere IIS-Konfiguration als die in der Beispieldateiweb.configenthaltene.
Weitere Informationen zu benutzerdefinierten web.config Dateien finden Sie unter Verwendung eines benutzerdefinierten web.config Abschnitts.
Problembehandlung
Wenn ein 500 - Interner Serverfehler empfangen wird und IIS-Manager Fehler auslöst, wenn versucht wird, auf die Konfiguration der Website zuzugreifen, bestätigen Sie, dass das URL Rewrite Module installiert ist. Wenn das Modul nicht installiert ist, kann die web.config Datei nicht von IIS analysiert werden. Dadurch wird verhindert, dass der IIS-Manager die Konfiguration der Website lädt und die Website die statischen Dateien von Blazor bereitstellt.
Weitere Informationen zur Problembehandlung bei Bereitstellungen für IIS finden Sie unter "Problembehandlung" ASP.NET Core für Azure App Service und IIS.
ASP.NET Core