Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.
Výstraha
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v zásadách podpory .NET a .NET Core. Aktuální vydání článku ve verzi .NET 9 najdete zde.
Tento článek vysvětluje, jak hostovat a nasazovat Blazor WebAssembly pomocí internetové informační služby (IIS).
IIS je schopný server pro statické soubory aplikací Blazor. Informace o konfiguraci služby IIS pro hostování Blazornajdete v tématu Vytvoření statického webu ve službě IIS.
Publikované prostředky se vytvářejí ve složce /bin/Release/{TARGET FRAMEWORK}/publish nebo bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, kde {TARGET FRAMEWORK} zástupný symbol představuje cílový framework. Hostujte obsah publish složky na webovém serveru nebo hostitelské službě.
Soubor web.config
Blazor Při publikování web.config projektu se vytvoří soubor s následující konfigurací služby IIS:
- typy MIME
- Komprese HTTP je povolená pro následující typy MIME:
application/octet-streamapplication/wasm
- Jsou nastavena pravidla modulu přepsání adresy URL:
- Obsluhujte podadresář, ve kterém se nacházejí statické prostředky aplikace (
wwwroot/{PATH REQUESTED}). - Vytvořte náhradní směrování SPA tak, aby se požadavky na jiné prostředky než soubor přesměrovaly do výchozího dokumentu aplikace ve složce statických prostředků (
wwwroot/index.html).
- Obsluhujte podadresář, ve kterém se nacházejí statické prostředky aplikace (
Použití vlastního web.config
Použití vlastního web.config souboru:
- Umístěte vlastní
web.configsoubor do kořenové složky projektu. - Publikujte projekt. Další informace najdete v tématu Hostitel a nasazení ASP.NET Core Blazor.
- Umístěte vlastní
web.configsoubor do kořenové složky projektu. V případě hostovaného Blazor WebAssemblyřešení umístěte soubor do Server složky projektu. - Publikujte projekt. V případě hostovaného Blazor WebAssembly řešení publikujte řešení z Server projektu. Další informace najdete v tématu Hostitel a nasazení ASP.NET Core Blazor.
Pokud generování či transformace SDK web.config během publikování buď nepřesune soubor do publikovaných prostředků ve složce publish, nebo upraví vlastní konfiguraci ve vašem souboru web.config, použijte některý z následujících přístupů pro plnou kontrolu nad procesem:
Pokud sada SDK soubor nevygeneruje, například v samostatné aplikaci Blazor WebAssembly nebo v
/bin/Release/{TARGET FRAMEWORK}/publish/wwwrootbin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, kde zástupný symbol{TARGET FRAMEWORK}představuje cílový rámec, nastavte vlastnost<PublishIISAssets>natruev souboru projektu (.csproj). U samostatných aplikací WebAssembly se obvykle jedná o jediné požadované nastavení pro přesunutí vlastníhoweb.configsouboru a zabránění transformaci souboru sadou SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Zakažte transformaci sady SDK
web.configv souboru projektu (.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Přidejte vlastní cíl do souboru projektu (
.csproj) pro přesunutí vlastníhoweb.configsouboru. V následujícím příkladu je vlastníweb.configsoubor umístěn vývojářem v kořenovém adresáři projektu. Pokud se souborweb.confignachází jinde, zadejte cestu k souboru vSourceFiles. Následující příklad určujepublishsložku s$(PublishDir), a poskytuje cestu kDestinationFolderpro vlastní výstupní umístění.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Instalace modulu pro přepsání adresy URL
K přepsání adres URL je vyžadován modul URL Rewrite. Modul není ve výchozím nastavení nainstalovaný a není k dispozici pro instalaci jako funkce služby role Webový server (IIS). Modul se musí stáhnout z webu služby IIS. Pomocí instalačního programu webové platformy nainstalujte modul:
- Místně přejděte na stránku pro stažení modulu pro přepsání adresy URL. Pro anglickou verzi vyberte WebPI a stáhněte instalační program WebPI. V případě jiných jazyků vyberte příslušnou architekturu pro server (x86/x64) a stáhněte instalační program.
- Zkopírujte instalační program na server. Spusťte instalační program. Vyberte tlačítko Instalovat a přijměte licenční podmínky. Po dokončení instalace se nevyžaduje restartování serveru.
Konfigurace webu
Nastavte fyzickou cestu webu ke složce aplikace. Složka obsahuje:
- Soubor
web.config, který služba IIS používá ke konfiguraci webu, včetně požadovaných pravidel přesměrování a typů obsahu souborů. - Složka statických aktiv aplikace.
Hostování jako podsložka IIS
Pokud je samostatná aplikace hostovaná jako dílčí aplikace služby IIS, proveďte jednu z následujících akcí:
Zakažte zděděnou obslužnou rutinu modulu ASP.NET Core.
Odeberte obslužnou rutinu v publikovaném souboru aplikace Blazor přidáním oddílu
web.configdo oddílu<handlers>souboru:<handlers> <remove name="aspNetCore" /> </handlers>Zakažte dědičnost sekce kořenové aplikace
<system.webServer>pomocí prvku<location>s nastaveníminheritInChildApplicationsnafalse:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" ... /> </handlers> <aspNetCore ... /> </system.webServer> </location> </configuration>Poznámka:
Zakázání dědičnosti kořenové (nadřazené) části aplikace
<system.webServer>je výchozí konfigurace publikovaných aplikací pomocí sady .NET SDK.
Odebrání obslužné rutiny nebo zakázání dědičnosti se provádí kromě konfigurace základní cesty aplikace. Nastavte základní cestu aplikace v souboru aplikace index.html na alias IIS použitý při konfiguraci dílčí aplikace ve službě IIS.
Základní cestu aplikace nakonfigurujte podle pokynů v základní cestě aplikace ASP.NET CoreBlazor.
Komprese Brotli a Gzip
Tato část se týká jenom samostatných Blazor WebAssembly aplikací.
Tato část se týká jenom samostatných Blazor WebAssembly aplikací. Hostované Blazor aplikace používají výchozí soubor aplikace web.config ASP.NET Core, nikoli soubor propojený v této části.
Je možné nakonfigurovat službu IIS pomocí web.config tak, aby obsluhovala prostředky komprimované pomocí Brotli nebo Gzip pro samostatné Blazor aplikace. Příklad konfiguračního souboru naleznete v web.config.
V následujících scénářích může být vyžadována další konfigurace ukázkového web.config souboru:
- Specifikace aplikace požaduje jednu z následujících možností:
- Obsluha komprimovaných souborů, které nejsou nakonfigurované ukázkovým
web.configsouborem. - Obsluha komprimovaných souborů nakonfigurovaných ukázkovým
web.configsouborem v nekomprimovaném formátu
- Obsluha komprimovaných souborů, které nejsou nakonfigurované ukázkovým
- Konfigurace služby IIS serveru (například
applicationHost.config) poskytuje výchozí hodnoty služby IIS na úrovni serveru. V závislosti na konfiguraci na úrovni serveru může aplikace vyžadovat jinou konfiguraci služby IIS, než jaký ukázkovýweb.configsoubor obsahuje.
Další informace o vlastních web.config souborech najdete v části Použití vlastního web.config oddílu.
Řešení problémů
Pokud se zobrazí chyba 500 – Vnitřní chyba serveru a Správce služby IIS při pokusu o přístup ke konfiguraci webu vyvolá chyby, ověřte, že je nainstalovaný modul pro přepsání adresy URL. Pokud modul není nainstalovaný, web.config nejde soubor analyzovat službou IIS. Tím se zabrání správci služby IIS načíst konfiguraci webu a webu ve poskytování statických souborů Blazor.
Další informace o řešení potíží s nasazeními do služby IIS najdete v tématu Řešení potíží ASP.NET Core ve službě Aplikace Azure a službě IIS.