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í vydání článku ve verzi .NET 9 najdete zde.
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.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Společnost Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, pokud jde o informace uvedené zde.
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
, v závislosti na používané verzi sady SDK a umístění {TARGET FRAMEWORK}
zástupného symbolu pro 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-stream
application/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.config
soubor 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.config
soubor 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 SDK soubor negeneruje, například v samostatné Blazor WebAssembly aplikaci na
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot
nebobin\Release\{TARGET FRAMEWORK}\browser-wasm\publish
, v závislosti na tom, kterou verzi SDK použijete a kde{TARGET FRAMEWORK}
zástupný symbol je cílovým frameworkem, nastavte vlastnost<PublishIISAssets>
natrue
v souboru projektu (.csproj
). U samostatných aplikací WebAssembly se obvykle jedná o jediné požadované nastavení pro přesunutí vlastníhoweb.config
souboru a zabránění transformaci souboru sadou SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>
Zakažte transformaci sady SDK
web.config
v souboru projektu (.csproj
):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>
Přidejte vlastní cíl do souboru projektu (
.csproj
) pro přesunutí vlastníhoweb.config
souboru. V následujícím příkladu je vlastníweb.config
soubor umístěn vývojářem v kořenovém adresáři projektu. Pokud se souborweb.config
nachází jinde, zadejte cestu k souboru vSourceFiles
. Následující příklad určujepublish
složku s$(PublishDir)
, a poskytuje cestu kDestinationFolder
pro 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.config
do 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íminheritInChildApplications
nafalse
:<?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.config
souborem. - Obsluha komprimovaných souborů nakonfigurovaných ukázkovým
web.config
souborem 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.config
soubor 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.