Sdílet prostřednictvím


Hostování a nasazení ASP.NET Core Blazor WebAssembly se službou IIS

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).

Použití vlastního web.config

Použití vlastního web.config souboru:

  1. Umístěte vlastní web.config soubor do kořenové složky projektu.
  2. Publikujte projekt. Další informace najdete v tématu Hostitel a nasazení ASP.NET Core Blazor.
  1. 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.
  2. 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 nebo bin\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> na true v souboru projektu (.csproj). U samostatných aplikací WebAssembly se obvykle jedná o jediné požadované nastavení pro přesunutí vlastního web.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ího web.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 soubor web.config nachází jinde, zadejte cestu k souboru v SourceFiles. Následující příklad určuje publish složku s $(PublishDir), a poskytuje cestu k DestinationFolder 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:

  1. 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.
  2. 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ím inheritInChildApplications na false:

    <?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
  • 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.