Dela via


Hantera och distribuera ASP.NET Core Blazor WebAssembly med IIS

Anmärkning

Det här är inte den senaste versionen av den här artikeln. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .

Varning

Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i .NET och .NET Core Support Policy. För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .

Viktigt!

Den här informationen gäller en förhandsversionsprodukt som kan ändras avsevärt innan den släpps kommersiellt. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, med avseende på den information som tillhandahålls här.

För den nuvarande utgåvan, se .NET 9-versionen av den här artikeln .

Den här artikeln beskriver hur du driftar och publicerar Blazor WebAssembly med hjälp av Internet Information Services (IIS).

IIS är en kompatibel statisk filserver för Blazor appar. Information om hur du konfigurerar IIS som värd för Blazorfinns i Skapa en statisk webbplats på IIS-.

Publicerade resurser skapas i mappen /bin/Release/{TARGET FRAMEWORK}/publish eller bin\Release\{TARGET FRAMEWORK}\browser-wasm\publish, beroende på vilken version av SDK som används och där platshållaren {TARGET FRAMEWORK} är målramverket. Lägg upp innehållet i mappen publish på webbservern eller värdtjänsten.

web.config fil

När ett Blazor projekt publiceras skapas en web.config fil med följande IIS-konfiguration:

  • MIME-typer
  • HTTP-komprimering är aktiverat för följande MIME-typer:
    • application/octet-stream
    • application/wasm
  • Regler för URL-omskrivningsmodul upprättas:
    • Hantera den underkatalog där appens statiska tillgångar finns (wwwroot/{PATH REQUESTED}).
    • Skapa SPA-fallback-routning så att begäranden om icke-filresurser omdirigeras till appens standardfil i mappen för statiska resurser (wwwroot/index.html).

Användning av en anpassad web.config

Så här använder du en anpassad web.config fil:

  1. Placera den anpassade web.config filen i projektets rotmapp.
  2. Publicera projektet. Mer information finns i Hosta och distribuera ASP.NET Core Blazor.
  1. Placera den anpassade web.config filen i projektets rotmapp. För en värdbaserad Blazor WebAssemblylösningplacerar du filen i Server-projektets mapp.
  2. Publicera projektet. För en värdbaserad Blazor WebAssembly-lösning, publicera lösningen från projekt Server. Mer information finns i Hosta och distribuera ASP.NET Core Blazor.

Om SDK:ns web.config generering eller omvandling under publiceringen antingen inte flyttar filen till publicerade tillgångar i mappen publish eller ändrar den anpassade konfigurationen i din anpassade web.config-fil använder du någon av följande metoder efter behov för att ta fullständig kontroll över processen:

  • Om SDK:t inte genererar filen, till exempel i en fristående Blazor WebAssembly app på /bin/Release/{TARGET FRAMEWORK}/publish/wwwroot eller bin\Release\{TARGET FRAMEWORK}\browser-wasm\publish, beroende på vilken version av SDK:t som används och var {TARGET FRAMEWORK} platshållaren är målramverket, anger du egenskapen <PublishIISAssets> till true i projektfilen (.csproj). Vanligtvis för fristående WebAssembly-appar är detta den enda obligatoriska inställningen för att flytta en anpassad web.config fil och förhindra att filen transformeras av SDK:t.

    <PropertyGroup>
      <PublishIISAssets>true</PublishIISAssets>
    </PropertyGroup>
    
  • Inaktivera web.config-transformationen för SDK:et i projektfilen (.csproj):

    <PropertyGroup>
      <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    </PropertyGroup>
    
  • Lägg till ett anpassat mål i projektfilen (.csproj) för att flytta en anpassad web.config fil. I följande exempel placeras den anpassade web.config-filen av utvecklaren i projektets rot. Om filen web.config finns någon annanstans anger du sökvägen till filen i SourceFiles. I följande exempel anges mappen publish med $(PublishDir), men anger en sökväg till DestinationFolder för en anpassad utdataplats.

    <Target Name="CopyWebConfig" AfterTargets="Publish">
      <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" />
    </Target>
    

Installera url-omskrivningsmodulen

URL Rewrite Module krävs för att skriva om URL:er. Modulen är inte installerad som standard och den är inte tillgänglig för installation som en rolltjänstfunktion för webbserver (IIS). Modulen måste laddas ned från IIS-webbplatsen. Använd installationsprogrammet för webbplattformen för att installera modulen:

  1. Navigera lokalt till nedladdningssidan för URL-omskrivningsmodulen . För den engelska versionen väljer du WebPI- för att ladda ned WebPI-installationsprogrammet. För andra språk väljer du lämplig arkitektur för servern (x86/x64) för att ladda ned installationsprogrammet.
  2. Kopiera installationsprogrammet till servern. Kör installationsprogrammet. Välj knappen Installera och godkänn licensvillkoren. En omstart av servern krävs inte när installationen är klar.

Konfigurera webbplatsen

Ange webbplatsens fysiska sökväg till appens mapp. Mappen innehåller:

  • Den web.config fil som IIS använder för att konfigurera webbplatsen, inklusive nödvändiga omdirigeringsregler och filinnehållstyper.
  • Appens statiska tillgångsmapp.

Kör som en IIS-underapp

Om en fristående app hanteras som en IIS-underapp utför du något av följande:

  • Inaktivera den ärvda ASP.NET Core Module-hanteraren.

    Ta bort hanteraren i Blazor-appens publicerade web.config-fil genom att lägga till ett <handlers> avsnitt i avsnittet <system.webServer> i filen:

    <handlers>
      <remove name="aspNetCore" />
    </handlers>
    
  • Inaktivera arv av rotappens (moderappens) <system.webServer>-avsnitt med ett <location>-element där inheritInChildApplications är inställt på 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>
    

    Anmärkning

    Inaktivering av arv av rotappens <system.webServer>-avsnitt är standardkonfigurationen för publicerade appar med .NET SDK.

Att ta bort hanteraren eller inaktivera arv sker dessutom genom att konfigurera appens bassökväg. Ange appens bassökväg i appens index.html fil till det IIS-alias som används när du konfigurerar underappen i IIS.

Konfigurera appens bassökväg genom att följa anvisningarna i ASP.NET Grundläggande sökväg för Core-appenBlazor.

Brotli- och Gzip-komprimering

Det här avsnittet gäller endast fristående Blazor WebAssembly appar.

Det här avsnittet gäller endast fristående Blazor WebAssembly appar. Värdbaserade Blazor-appar använder en ASP.NET Core standardfil för appen web.config, inte den fil som är länkad i det här avsnittet.

IIS kan konfigureras via web.config för att hantera Brotli- eller Gzip-komprimerade Blazor tillgångar för fristående Blazor WebAssembly appar. Ett exempel på en konfigurationsfil finns i web.config.

Ytterligare konfiguration av exemplet web.config fil kan krävas i följande scenarier:

  • Appens specifikation kräver något av följande:
    • Servera komprimerade filer som inte har konfigurerats av exempelfilen web.config.
    • Leverera komprimerade filer som konfigurerats av exempel web.config-filen i ett okomprimerat format.
  • Serverns IIS-konfiguration (till exempel applicationHost.config) tillhandahåller IIS-standardvärden på servernivå. Beroende på konfigurationen på servernivå kan appen kräva en annan IIS-konfiguration än vad exemplet web.config fil innehåller.

Mer information om anpassade web.config filer finns i avsnittet Använda en anpassad web.config fil.

Felsökning

Om ett 500 – internt serverfel tas emot och IIS-hanteraren utlöser fel när du försöker komma åt webbplatsens konfiguration kontrollerar du att URL-omskrivningsmodulen är installerad. När modulen inte är installerad kan web.config-filen inte parsas av IIS. Detta hindrar IIS-hanteraren från att läsa in webbplatsens konfiguration och hindrar webbplatsen från att leverera Blazor:s statiska filer.

Mer information om hur du felsöker distributioner till IIS finns i Felsöka ASP.NET Core i Azure App Service och IIS.