Megosztás a következőn keresztül:


Az ASP.NET Core Blazor WebAssembly hosztolása és üzembe helyezése IIS-sel

Megjegyzés:

Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.

Figyelmeztetés

A ASP.NET Core ezen verziója már nem támogatott. További információ: .NET és .NET Core támogatási szabályzat. A jelen cikk .NET 9-es verzióját lásd az aktuális kiadásért .

Ez a cikk ismerteti, hogyan lehet üzemeltetni és üzembe helyezni a Blazor WebAssembly az Internet Information Services (IIS) használatával.

Az IIS képes statikus fájlkiszolgáló Blazor alkalmazásokhoz. Az IIS Blazorüzemeltetésének konfigurálásához tekintse meg a "Statikus webhely létrehozása az IIS" című útmutatót.

A közzétett objektumok abban a /bin/Release/{TARGET FRAMEWORK}/publish mappában vagy bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish mappában jönnek létre, ahol a {TARGET FRAMEWORK} helyőrző a cél keretrendszer. A publish mappa tartalmának hosztolása a webkiszolgálón vagy a hosting szolgáltatásban.

web.config fájl

Egy Blazor projekt közzétételekor egy web.config-fájl jön létre a következő IIS-konfigurációval:

  • MIME-típusok
  • A HTTP-tömörítés a következő MIME-típusok esetében engedélyezett:
    • application/octet-stream
    • application/wasm
  • Az URL-átírási modul szabályai a következők:
    • Annak az alkönyvtárnak a kiszolgálása, amelyben az alkalmazás statikus eszközei találhatók (wwwroot/{PATH REQUESTED}).
    • Hozzon létre spa tartalék útválasztást, hogy a nem fájlbeli objektumokra vonatkozó kérések átirányítva legyenek az alkalmazás alapértelmezett dokumentumába a statikus eszközök mappájában (wwwroot/index.html).

Egyedi használat web.config

Egyéni web.config fájl használata:

  1. Helyezze az egyéni web.config fájlt a projekt gyökérmappájába.
  2. Tegye közzé a projektet. További információ: ASP.NET Core alkalmazások hosztolása és telepítése Blazor.
  1. Helyezze az egyéni web.config fájlt a projekt gyökérmappájába. Tárhelyen kezelt Blazor WebAssemblymegoldásesetén helyezze a fájlt a Server projekt mappájába.
  2. Tegye közzé a projektet. Üzemeltetett Blazor WebAssembly megoldás esetén tegye közzé a megoldást a Server projektből. További információ: ASP.NET Core alkalmazások hosztolása és telepítése Blazor.

Ha az SDK web.config létrehozása vagy átalakítása a közzététel során nem helyezi át a fájlt a publish mappában található közzétett állományokhoz, vagy módosítja a konfigurációt az egyéni web.config-fájlban, a folyamat teljes ellenőrzéséhez használja az alábbi módszerek bármelyikét:

  • Ha az SDK nem hozza létre a fájlt, például egy különálló Blazor WebAssembly alkalmazásban/bin/Release/{TARGET FRAMEWORK}/publish/wwwrootbin/Release/{TARGET FRAMEWORK}/browser-wasm/publish, ahol a {TARGET FRAMEWORK} helyőrző a cél keretrendszer, állítsa be a <PublishIISAssets> tulajdonságot true a projektfájlban (.csproj). Az önálló WebAssembly-alkalmazások esetében ez az egyetlen szükséges beállítás az egyéni web.config fájlok áthelyezéséhez és a fájl SDK általi átalakításának megakadályozásához.

    <PropertyGroup>
      <PublishIISAssets>true</PublishIISAssets>
    </PropertyGroup>
    
  • Tiltsa le az SDK web.config átalakítását a projektfájlban (.csproj):

    <PropertyGroup>
      <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    </PropertyGroup>
    
  • Adjon hozzá egy célzott célpontot a projektfájlhoz (.csproj), hogy áthelyezzen egyedi web.config fájlt. Az alábbi példában az egyéni web.config fájlt a fejlesztő helyezi el a projekt gyökerénél. Ha a web.config fájl máshol található, adja meg a fájl elérési útját a SourceFiles. Az alábbi példa a publish$(PublishDir) mappát határozza meg, de megadja az egyéni kimeneti hely DestinationFolder elérési útját.

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

Az URL-átírási modul telepítése

Az URL-címek újraírásához a URL-átírási modul szükséges. A modul alapértelmezés szerint nincs telepítve, és nem érhető el webkiszolgálói (IIS) szerepkör-szolgáltatásként való telepítéshez. A modult le kell tölteni az IIS webhelyéről. A modul telepítéséhez használja a webplatform-telepítőt:

  1. Helyileg navigáljon az URL-átríró modul letöltési oldalára. Az angol verzió esetében válassza WebPI- a WebPI telepítőjének letöltéséhez. Más nyelvek esetén válassza ki a kiszolgáló megfelelő architektúráját (x86/x64) a telepítő letöltéséhez.
  2. Másolja a telepítőt a kiszolgálóra. Indítsa el a telepítőt. Válassza a Telepítés gombot, és fogadja el a licencfeltételeket. A telepítés befejezése után nincs szükség kiszolgáló-újraindításra.

A webhely konfigurálása

Állítsa be a webhely fizikai elérési útját az alkalmazás mappájába. A mappa a következőket tartalmazza:

  • Az IIS által a webhely konfigurálásához használt web.config fájl, beleértve a szükséges átirányítási szabályokat és fájltartalmakat.
  • Az alkalmazás statikus erőforrásmappája.

Hostolás IIS alalkalmazásként

Ha egy önálló alkalmazás IIS-alalkalmazásként van üzemeltetve, hajtsa végre az alábbi műveletek egyikét:

  • Tiltsa le az örökölt ASP.NET core modulkezelőt.

    Távolítsa el a kezelőt a Blazor alkalmazás közzétett web.config fájljában úgy, hogy hozzáad egy <handlers> szakaszt a fájl <system.webServer> szakaszához:

    <handlers>
      <remove name="aspNetCore" />
    </handlers>
    
  • Tiltsa le a gyökér (szülői) alkalmazás <system.webServer> szakaszának öröklését egy <location> elemet használva, amelynek inheritInChildApplications beállítása false-ra:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <handlers>
            <add name="aspNetCore" ... />
          </handlers>
          <aspNetCore ... />
        </system.webServer>
      </location>
    </configuration>
    

    Megjegyzés:

    A gyökéralkalmazás (szülő) alkalmazás <system.webServer> szakaszának öröklésének letiltása a .NET SDK-t használó közzétett alkalmazások alapértelmezett konfigurációja.

A kezelő eltávolítása vagy az öröklés letiltása az alkalmazás alapútvonalánakkonfigurálása mellett történik. Állítsa be az alkalmazás index.html fájljában található alkalmazásbázis elérési útját az IIS-ben az alalkalmazás konfigurálásakor használt IIS-aliasra.

Konfigurálja az alkalmazás alap elérési útját az ASP.NET Core-alkalmazás Blazor alap elérési útjának útmutatásával.

Brotli és Gzip tömörítés

Ez a szakasz csak különálló Blazor WebAssembly alkalmazásokra vonatkozik.

Ez a szakasz csak különálló Blazor WebAssembly alkalmazásokra vonatkozik. A üzemeltetett Blazor-alkalmazások alapértelmezett ASP.NET Core-alkalmazás web.config fájlt használnak, nem az ebben a szakaszban csatolt fájlt.

Az IIS web.config konfigurálható a Brotli- vagy Gzip-tömörítésű Blazor-eszközök kiszolgálására önálló Blazor WebAssembly-alkalmazásokhoz. Példa konfigurációs fájlra: web.config.

A példában szereplő web.config fájl további konfigurálása a következő forgatókönyvekben lehetséges:

  • Az alkalmazás specifikációja az alábbiak valamelyikét kéri:
    • A példa web.config fájl által nem konfigurált tömörített fájlok kiszolgálása.
    • A web.config fájl által konfigurált tömörített fájlok kiszolgálása tömörítetlen formátumban.
  • A kiszolgáló IIS-konfigurációja (például applicationHost.config) a kiszolgálószintű IIS alapértelmezett beállításait biztosítja. A kiszolgálószintű konfigurációtól függően előfordulhat, hogy az alkalmazás más IIS-konfigurációt igényel, mint amit a példa web.config fájl tartalmaz.

Az egyéni web.config fájlokról további információt az Egyéni web.configszakasz használata című témakörben talál.

Hibaelhárítás

Ha 500 - belső kiszolgálóhiba érkezik, és az IIS Manager hibát jelez a webhely konfigurációjának elérésekor, ellenőrizze, hogy telepítve van-e az URL-átírási modul. Ha a modul nincs telepítve, az IIS nem tudja elemezni a web.config fájlt. Ez megakadályozza, hogy az IIS-kezelő betöltse a webhely konfigurációját, és hogy a webhely Blazorstatikus fájljait szolgálja ki.

Az IIS-re történő telepítések hibaelhárításáról további információkat az Azure App Service és az IISASP.NET Core hibaelhárítása című dokumentumban talál.