Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Note
Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.
Warning
A ASP.NET Core ezen verziója már nem támogatott. További információt a .NET és a .NET Core támogatási szabályzatában talál. A jelen cikk .NET 9-es verzióját lásd az aktuális kiadásért .
Ez a cikk bemutatja, hogyan üzemeltethet és helyezhet üzembe Blazor WebAssembly alkalmazásokat.
Blazor WebAssembly üzemeltetési modell esetén:
- A Blazor alkalmazás, annak függőségei és a .NET-futtatókörnyezet párhuzamosan lesz letöltve a böngészőbe.
- Az alkalmazás végrehajtása közvetlenül a böngésző felhasználói felületi szálán történik.
Ez a cikk arra az üzembehelyezési forgatókönyvre vonatkozik, amelyben a Blazor alkalmazás statikus üzemeltetési webkiszolgálóra vagy szolgáltatásra kerül, a .NET nem a Blazor alkalmazás kiszolgálására szolgál. Ez a stratégia az önálló üzembe helyezés szakaszában, valamint a csomópont egyéb, az IIS-hez, az Azure-szolgáltatásokhoz, az Apache-hoz, az Nginxhez és a GitHub Pageshez készült cikkeiben található.
A következő üzembehelyezési stratégiák támogatottak:
- A Blazor alkalmazást egy ASP.NET Core-alkalmazás szolgálja ki. Ezt a stratégiát a Üzemeltetett üzembe helyezés ASP.NET Core című szakasz ismerteti.
- A Blazor alkalmazás egy statikus üzemeltetési webkiszolgálóra vagy szolgáltatásra kerül, ahol a .NET nem a Blazor alkalmazás kiszolgálására szolgál. Ezt a stratégiát az önálló üzembe helyezési szakasz ismerteti, amely információkat tartalmaz a Blazor WebAssembly-alkalmazások IIS-alalkalmazásként való üzemeltetéséről.
- Egy ASP.NET Core-alkalmazás több Blazor WebAssembly alkalmazást üzemeltet. További információ: Több üzemeltetett ASP.NET Core Blazor WebAssembly-alkalmazás.
Altartomány és IIS-alalkalmazás üzemeltetése
Az altartomány-üzemeltetéshez nincs szükség az alkalmazás speciális konfigurálásához. Nincs szükség az alkalmazás alap útvonalát (a címkéjét) konfigurálni az alkalmazás altartományban való elhelyezéséhez.
Az üzemeltető IIS-alalkalmazás megköveteli az alkalmazás alapelérési útvonalának beállítását. További információk és kereszthivatkozások az IIS al-alkalmazások üzemeltetésére vonatkozó további útmutatáshoz: ASP.NET Core tárhely és üzembe helyezés Blazor.
Egyes mobileszköz-böngészők maximális halomméretének csökkentése
Amikor egy az ügyfélen futó Blazor-alkalmazást hozunk létre (.Client projekt a Blazor Web App vagy önálló Blazor WebAssembly alkalmazás esetében) és a mobileszköz-böngészőket célozzuk meg, különösen az iOS-en futó Safarit, lehet, hogy szükség van az alkalmazás maximális memóriájának csökkentésére az MSBuild EmccMaximumHeapSize tulajdonságával. Az alapértelmezett érték 2 147 483 648 bájt, ami túl nagy lehet, és az alkalmazás összeomlik, ha az alkalmazás több memóriát próbál lefoglalni, és a böngésző nem adja meg. Az alábbi példa 268 435 456 bájtra állítja az értéket a Program fájlban:
A mobileszközök böngészőit - különösen az iOS-en futó Safarit - megcélzó Blazor WebAssembly-alkalmazás készítésekor szükség lehet az EmccMaximumHeapSize MSBuild tulajdonság használatával csökkenteni az alkalmazás maximális memóriáját. Az alapértelmezett érték 2 147 483 648 bájt, ami túl nagy lehet, és az alkalmazás összeomlik, ha az alkalmazás több memóriát próbál lefoglalni, és a böngésző nem adja meg. Az alábbi példa 268 435 456 bájtra állítja az értéket a Program fájlban:
<EmccMaximumHeapSize>268435456</EmccMaximumHeapSize>
A Mono/WebAssembly MSBuild tulajdonságairól és céljairól további információt a WasmApp.Common.targets (dotnet/runtime GitHub-adattár)című cikkben talál.
Webcil csomagolási formátum .NET-szerelvényekhez
Webcil a .NET-szerelvények webbarát csomagolási formátuma, amely lehetővé teszi a Blazor WebAssembly használatát korlátozó hálózati környezetekben. A Webcil-fájlok szabványos WebAssembly burkolót használnak, ahol a szerelvények WebAssembly fájlokként vannak üzembe helyezve, amelyek a standard .wasm fájlkiterjesztést használják.
A Webcil az alapértelmezett csomagolási formátum Blazor WebAssembly-alkalmazások közzétételekor. A Webcil használatának letiltásához állítsa be az alábbi MSBuild tulajdonságot az alkalmazás projektfájljában:
<PropertyGroup>
<WasmEnableWebcil>false</WasmEnableWebcil>
</PropertyGroup>
A rendszerindító erőforrások betöltésének testreszabása
Testre szabhatja a rendszerindító erőforrások betöltésének módját a loadBootResource API használatával. További információért lásd: ASP.NET Core Blazor indítási folyamat.
Compression
Egy Blazor WebAssembly-alkalmazás közzétételekor a kimenet statikusan tömörítve lesz a közzététel során az alkalmazás méretének csökkentése és a futásidejű tömörítés többletterhelésének eltávolítása érdekében. A rendszer a következő tömörítési algoritmusokat használja:
Blazor a szerverre támaszkodik a megfelelő tömörített fájlok kiszolgálásához. Ha Blazor WebAssembly önálló alkalmazást üzemeltet, további munkára lehet szükség a statikusan tömörített fájlok kézbesítésének biztosításához:
Blazor a szerverre támaszkodik a megfelelő tömörített fájlok kiszolgálásához. Amikor egy ASP.NET Core HostedBlazor WebAssembly projektet használunk, a gazda projekt képes elvégezni a tartalomegyeztetést és kiszolgálni a statikusan tömörített fájlokat. Ha Blazor WebAssembly önálló alkalmazást üzemeltet, további munkára lehet szükség a statikusan tömörített fájlok kézbesítésének biztosításához:
- Az IIS
web.configtömörítési konfigurációjához tekintse meg a IIS: Brotli és Gzip tömörítési szakaszt. - Ha olyan statikus üzemeltetési megoldásokon üzemeltet, amelyek nem támogatják a statikusan tömörített fájltartalom egyeztetését, fontolja meg az alkalmazás konfigurálását a Brotli-tömörített fájlok beolvasására és dekódolására:
Szerezze be a JavaScript Brotli dekódert a google/brotli GitHub-adattárból. A minifikált dekóder neve
Note
Ha a decode.js szkript (decode.min.js) minifikált verziója sikertelen, próbálkozzon helyette a nem meghatározott verzió (decode.js) használatával.
Frissítse az alkalmazást a dekóder használatára.
A(z) wwwroot/index.html fájlban a autostartfalse címkéjén állítsa a Blazor-t <script>-re:
<script src="_framework/blazor.webassembly.js" autostart="false"></script>
A(z) Blazor<script> címkéje után és a záró </body> címke előtt adja hozzá a következő JavaScript-kód <script> blokkot. Az alábbi függvény meghívja fetchcache: 'no-cache', hogy a böngésző gyorsítótára frissüljön.
Blazor Web App:
<script type="module">
import { BrotliDecode } from './decode.min.js';
Blazor.start({
webAssembly: {
loadBootResource: function (type, name, defaultUri, integrity) {
if (type !== 'dotnetjs' && location.hostname !== 'localhost' && type !== 'configuration' && type !== 'manifest') {
return (async function () {
const response = await fetch(defaultUri + '.br', { cache: 'no-cache' });
if (!response.ok) {
throw new Error(response.statusText);
}
const originalResponseBuffer = await response.arrayBuffer();
const originalResponseArray = new Int8Array(originalResponseBuffer);
const decompressedResponseArray = BrotliDecode(originalResponseArray);
const contentType = type ===
'dotnetwasm' ? 'application/wasm' : 'application/octet-stream';
return new Response(decompressedResponseArray,
{ headers: { 'content-type': contentType } });
})();
}
}
}
});
</script>
Önálló Blazor WebAssembly:
<script type="module">
import { BrotliDecode } from './decode.min.js';
Blazor.start({
loadBootResource: function (type, name, defaultUri, integrity) {
if (type !== 'dotnetjs' && location.hostname !== 'localhost' && type !== 'configuration') {
return (async function () {
const response = await fetch(defaultUri + '.br', { cache: 'no-cache' });
if (!response.ok) {
throw new Error(response.statusText);
}
const originalResponseBuffer = await response.arrayBuffer();
const originalResponseArray = new Int8Array(originalResponseBuffer);
const decompressedResponseArray = BrotliDecode(originalResponseArray);
const contentType = type ===
'dotnetwasm' ? 'application/wasm' : 'application/octet-stream';
return new Response(decompressedResponseArray,
{ headers: { 'content-type': contentType } });
})();
}
}
});
</script>
A rendszerindító erőforrások betöltéséről további információt a ASP.NET Core Blazor indításicímű témakörben talál.
A tömörítés letiltásához adja hozzá az CompressionEnabled MSBuild tulajdonságot az alkalmazás projektfájljába, és állítsa az értéket false:
<PropertyGroup>
<CompressionEnabled>false</CompressionEnabled>
</PropertyGroup>
A CompressionEnabled tulajdonság a következő szintaxissal adható át a dotnet publish parancsnak egy parancshéjban:
dotnet publish -p:CompressionEnabled=false
A tömörítés letiltásához adja hozzá az BlazorEnableCompression MSBuild tulajdonságot az alkalmazás projektfájljába, és állítsa az értéket false:
<PropertyGroup>
<BlazorEnableCompression>false</BlazorEnableCompression>
</PropertyGroup>
A BlazorEnableCompression tulajdonság a következő szintaxissal adható át a dotnet publish parancsnak egy parancshéjban:
dotnet publish -p:BlazorEnableCompression=false
URL-címek átírása a helyes útválasztáshoz
Az Blazor WebAssembly-alkalmazások lapösszetevőinek útválasztási kérései nem olyan egyszerűek, mint a Blazor Server-alkalmazások útválasztási kérelmei. Fontolja meg a két összetevőt tartalmazó Blazor WebAssembly alkalmazást:
-
Main.razor: Betölt az alkalmazás kezdeti pontján, és tartalmaz egy linket aAboutösszetevőre (href="About"). - Az
About.razor:Aboutösszetevő.
Amikor az alkalmazás alapértelmezett dokumentumát kéri a böngésző címsorában (például https://www.contoso.com/):
- A böngésző kérést küld.
- A rendszer visszaadja az alapértelmezett lapot, amely általában
index.html. -
index.htmlindítsa el az alkalmazást. -
Router összetevő betöltődik, és a Razor
Mainösszetevő renderelődik.
A Főoldalon a About összetevőre mutató hivatkozás kiválasztása az ügyfélen működik, mert a Blazor útválasztó megakadályozza, hogy a böngésző kérést indítson az interneten www.contoso.comAbout számára, ehelyett maga szolgálja ki a renderelt About összetevőt. Az Blazor WebAssembly alkalmazáson belül belső végpontokra vonatkozó összes kérés ugyanúgy működik,: A kérések nem indítják el a böngészőalapú kéréseket a kiszolgáló által üzemeltetett erőforrásokra az interneten. Az útválasztó belső folyamatban kezeli a kéréseket.
Ha a kérés a böngésző www.contoso.com/Aboutcímsávjával történik, a kérés meghiúsul. Ilyen erőforrás nem létezik az alkalmazás internetes gazdagépén, ezért a rendszer egy 404 – Nem található választ ad vissza.
Mivel a böngészők az ügyféloldali lapokhoz az internetes szerverekre irányuló kéréseket továbbítanak, a webkiszolgálóknak és az üzemeltetési szolgáltatásoknak át kell irányítaniuk minden olyan erőforrásra vonatkozó kérést, amely fizikailag nincs a kiszolgálón, a index.html lapra. Amikor a index.html visszatér, az alkalmazás Blazor routere átveszi az irányítást és a megfelelő erőforrást biztosítja.
IIS-kiszolgálón való üzembe helyezéskor az URL-átírási modult az alkalmazás közzétett web.config fájljával használhatja. További információkért lásd: ASP.NET Core üzemeltetése és telepítése Blazor WebAssembly az IIS-szel.
Üzemeltetett üzembe helyezés a ASP.NET Core használatával
A üzemeltetett üzembe helyezési egy webkiszolgálón futó Blazor WebAssembly böngészőinek szolgáltatja a alkalmazást.
Az ügyfél Blazor WebAssembly alkalmazás a kiszolgálóalkalmazás /bin/Release/{TARGET FRAMEWORK}/publish/wwwroot mappájában, valamint a kiszolgálóalkalmazás egyéb statikus webes eszközeiben lesz közzétéve. A két alkalmazás együtt van üzembe helyezve. Olyan webkiszolgálóra van szükség, amely képes ASP.NET Core-alkalmazás üzemeltetésére. Üzemeltetett telepítés esetén a Visual Studio tartalmazza az Blazor WebAssembly App projektsablont (blazorwasm sablon a dotnet new parancs használatakor) a Hosted opció kiválasztásával (-ho|--hosted a dotnet new parancs használatakor).
További információkért lásd a következő cikkeket:
- ASP.NET Core-alkalmazások üzemeltetése és üzembe helyezése: ASP.NET Core kiszolgálás és üzembe helyezés
- Üzembe helyezés az Azure App Service szolgáltatásba: ASP.NET Core-alkalmazás közzététele az Azure-ban a Visual Studio-val
- Blazor projektsablonok: ASP.NET Core Blazor projektstruktúra
Egy adott platformon futtatható keretrendszerfüggő végrehajtható példány üzemeltetett üzembe helyezése
Ha egy üzemeltetett
Visual Studio
A önálló üzembe helyezése egy létrehozott közzétételi profilhoz (.pubxml) van konfigurálva. Győződjön meg arról, hogy a Server projekt közzétételi profilja tartalmazza a <SelfContained> MSBuild tulajdonságot, amely falseértékre van állítva.
A .pubxml közzétételi profilfájl a Server projekt Properties mappájában található:
<SelfContained>false</SelfContained>
Az futtatókörnyezet-azonosítót (RID) a Közzététel UI Beállítások területén található Célt futtatókörnyezet beállítással állítsa be, amely az <RuntimeIdentifier> MSBuild tulajdonságot hozza létre a közzétételi profilban.
<RuntimeIdentifier>{RID}</RuntimeIdentifier>
Az előző konfigurációban a {RID} mint helyőrző a futási környezet azonosítója (RID).
Tegye közzé a Server projektet a Kiadás konfigurációban.
Note
.NET CLI segítségével közzétehet egy alkalmazást úgy, hogy a közzétételi profil beállításait a dotnet publish parancsban és nem a közzétételi profilban adja át a RID-et, használja az MSBuild tulajdonságot (/p:RuntimeIdentifier) a paranccsal, ne a -r|--runtime beállítással.
.NET CLI
Állítson be egy önálló üzembe helyezést úgy, hogy a projekt projektfájljában helyezze el az <SelfContained> MSBuild tulajdonságot, és állítsa be a(z) <PropertyGroup>-t a Server értékre.
<SelfContained>false</SelfContained>
Important
A SelfContained tulajdonságot a Server projektfájljában kell elhelyezni. A tulajdonság nem állítható be helyesen a dotnet publish paranccsal, a --no-self-contained opció vagy az MSBuild tulajdonság /p:SelfContained=false használatával.
Állítsa be a
1. lehetőség: Állítsa be a RID-t a
<PropertyGroup>-ban a Server projektfájljában:<RuntimeIdentifier>{RID}</RuntimeIdentifier>Az előző konfigurációban a
{RID}mint helyőrző a futási környezet azonosítója (RID).Tegye közzé az alkalmazást a kiadási konfigurációban a Server projektből:
dotnet publish -c Release2. lehetőség: A
dotnet publishparancsban adja át a RID-et a MSBuild tulajdonságként (/p:RuntimeIdentifier), ne a-r|--runtimebeállítással.dotnet publish -c Release /p:RuntimeIdentifier={RID}Az előző parancsban a
{RID}helyőrző a futtatókörnyezet-azonosító (RID).
További információkért lásd a következő cikkeket:
Önálló üzembe helyezés
A önálló üzembe helyezés az Blazor WebAssembly alkalmazást statikus fájlok készleteként szolgálja ki, amelyeket az ügyfelek közvetlenül kérnek. Bármely statikus fájlkiszolgáló képes kiszolgálni a Blazor alkalmazást.
Az önálló üzembehelyezési eszközök a /bin/Release/{TARGET FRAMEWORK}/publish/wwwroot vagy a bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish mappába vannak közzétéve, ahol a {TARGET FRAMEWORK} helyőrző a célkeretrendszer.
Azure App Service
Blazor WebAssembly az alkalmazások üzembe helyezhetők az Azure App Servicesben Windows rendszeren, amely az alkalmazást IIS-en üzemelteti.
Az önálló Blazor WebAssembly-alkalmazások linuxos Azure App Service-ben való üzembe helyezése jelenleg nem támogatott. Azt javasoljuk, hogy az
Önálló alkalmazás Dockerrel
A különálló Blazor WebAssembly-alkalmazások statikus fájlok készleteként jelennek meg, amelyeket statikus fájlkiszolgálók üzemeltetnek.
Az alkalmazás üzemeltetéséhez a Dockerben:
- Válasszon egy Docker-tárolót webkiszolgáló-támogatással, például Nginx vagy Apache.
- Másolja a
publishmappaegységeket a webkiszolgálón meghatározott helyre statikus fájlok kiszolgálásához. - Szükség szerint további konfigurációt alkalmazhat a Blazor WebAssembly alkalmazás kiszolgálásához.
A konfigurációs útmutatásért tekintse meg a következő erőforrásokat:
- Nginx vagy Apache cikkek
- A Docker dokumentációja
Hoszt konfigurációs értékek
Az Blazor WebAssembly alkalmazások a következő gazdagépkonfigurációs értékeket elfogadhatják parancssori argumentumként futásidőben a fejlesztési környezetben.
Tartalomgyökér
A --contentroot argumentum az alkalmazás tartalomfájljait tartalmazó könyvtár abszolút elérési útját állítja be (tartalomgyökerű). Az alábbi példákban /content-root-path az alkalmazás tartalomgyökerének elérési útja.
Adja át az argumentumot, amikor az alkalmazást helyileg futtatja egy parancssorban. Az alkalmazás könyvtárából hajtsa végre a következőt:
dotnet watch --contentroot=/content-root-pathVegyen fel egy bejegyzést az alkalmazás
launchSettings.jsonfájljára az IIS Express profilban. Ezt a beállítást akkor használja a rendszer, ha az alkalmazást a Visual Studio Hibakeresővel futtatja, és egy parancssorbóldotnet watch(vagydotnet run)."commandLineArgs": "--contentroot=/content-root-path"A Visual Studióban adja meg az argumentumot Tulajdonságok>Hibakeresés>alkalmazásargumentumok. A Visual Studio tulajdonságlapjának argumentumának beállítása hozzáadja az argumentumot a
launchSettings.jsonfájlhoz.--contentroot=/content-root-path
Elérési út alapja
A --pathbase argumentum beállítja a helyi futtatású alkalmazás alap elérési útját egy nem gyökérszintű relatív URL-címmel (a <base> címke href az előkészítéshez és az éles környezethez /-tól eltérő útvonalra van beállítva). Az alábbi példákban /relative-URL-path az alkalmazás elérésiút-alapja. További információ: ASP.NET Core-alkalmazás Blazor alap elérési útja.
Important
A href címke <base> megadott elérési úttól eltérően ne tartalmazzon záró perjelet (/) a --pathbase argumentumérték átadásakor. Ha az alkalmazás alap elérési útja a <base> címkében <base href="/CoolApp/"> ként van megadva (egy záró perjelet is tartalmaz), adja át a parancssori argumentum értékét --pathbase=/CoolApp (nincs záró perjel).
Adja át az argumentumot, amikor az alkalmazást helyileg futtatja egy parancssorban. Az alkalmazás könyvtárából hajtsa végre a következőt:
dotnet watch --pathbase=/relative-URL-pathVegyen fel egy bejegyzést az alkalmazás
launchSettings.jsonfájljára az IIS Express profilban. Ez a beállítás akkor használatos, ha az alkalmazást a Visual Studio Hibakeresővel vagy egy parancssorból, mintdotnet watch(vagydotnet run), futtatja."commandLineArgs": "--pathbase=/relative-URL-path"A Visual Studióban adja meg az argumentumot Tulajdonságok>Hibakeresés>alkalmazásargumentumok. A Visual Studio tulajdonságlapjának argumentumának beállítása hozzáadja az argumentumot a
launchSettings.jsonfájlhoz.--pathbase=/relative-URL-path
További információ: ASP.NET Core-alkalmazás Blazor alap elérési útja.
URLs
A --urls argumentum az IP-címeket vagy gazdagépcímeket portokkal és protokollokkal állítja be, hogy figyeljék a kéréseket.
Adja át az argumentumot, amikor az alkalmazást helyileg futtatja egy parancssorban. Az alkalmazás könyvtárából hajtsa végre a következőt:
dotnet watch --urls=http://127.0.0.1:0Vegyen fel egy bejegyzést az alkalmazás
launchSettings.jsonfájljára az IIS Express profilban. Ez a beállítás akkor használatos, ha az alkalmazást a Visual Studio Hibakeresővel vagy egy parancssorból, mintdotnet watch(vagydotnet run), futtatja."commandLineArgs": "--urls=http://127.0.0.1:0"A Visual Studióban adja meg az argumentumot Tulajdonságok>Hibakeresés>alkalmazásargumentumok. A Visual Studio tulajdonságlapjának argumentumának beállítása hozzáadja az argumentumot a
launchSettings.jsonfájlhoz.--urls=http://127.0.0.1:0
Trimmer konfigurálása
Blazor köztes nyelvi (IL) trimmelt hajt végre minden Release builden, hogy eltávolítsa a felesleges IL-t a kimeneti összeállításokból. További információt
A linker konfigurálása
Blazor köztes nyelvi (IL) csatolást végez minden kiadási builden, hogy eltávolítsa a felesleges IL-t a kimeneti szerelvényekből. További információért lásd: A Linker konfigurálása ASP.NET Core Blazor.
DLL-fájlok fájlnévkiterjesztésének módosítása
Ez a szakasz a .NET 5–.NET 7 verzióra vonatkozik. A .NET 8-as vagy újabb verzióiban a .NET-szerelvények WebAssembly-fájlokként (.wasm) vannak üzembe helyezve a Webcil fájlformátummal.
Ha egy tűzfal, vírusirtó program vagy hálózati biztonsági berendezés blokkolja az alkalmazás dinamikus csatolású kódtárának (DLL) fájljainak (.dll) továbbítását, az ebben a szakaszban található útmutatást követve módosíthatja az alkalmazás közzétett DLL-fájljainak fájlnévkiterjesztéseit.
Előfordulhat, hogy az alkalmazás DLL-fájljai fájlnévkiterjesztéseinek módosítása nem oldja meg a problémát, mivel számos biztonsági rendszer megvizsgálja az alkalmazás fájljainak tartalmát, és nem csupán a fájlkiterjesztéseket ellenőrzi.
A DLL-fájlok letöltését és végrehajtását letiltó környezetek robusztusabb megközelítéséhez az alábbi módszereket:
- Használja a .NET 8-as vagy újabb verzióját, amely WebAssembly-fájlként (
.wasm) csomagolja a .NET-szerelvényeket a Webcil fájlformátummal. További információt a cikk .NET 8 vagy újabb verziójának .NET-szerelvényekhez készült Webcil csomagolási formátuma című szakaszában talál. - A .NET 6-os vagy újabb verzióiban használjon egyéni üzembe helyezési elrendezést.
A probléma kezelésére léteznek külső megközelítések. További információért tekintse meg a forrásokat a Kiváló Blazor.
Az alkalmazás közzététele után használjon rendszerhéjszkriptet vagy DevOps-buildfolyamatot .dll fájlok átnevezéséhez, hogy az alkalmazás közzétett kimenetének könyvtárában egy másik fájlkiterjesztést használjon.
Az alábbi példákban:
- A PowerShell (PS) a fájlkiterjesztések frissítésére szolgál.
- A
.dllfájlok a parancssorban átnevezhetők úgy, hogy a.binfájlkiterjesztést kapják. - A közzétett Blazor rendszerindítási jegyzékben fájlkiterjesztéssel
.dllellátott fájlok frissülnek a.binfájlkiterjesztésre. - Ha a szolgáltatásvégző objektumok is használatban vannak, egy PowerShell-parancs frissíti a
.dllfájlban felsoroltservice-worker-assets.jsfájlokat a.binfájlkiterjesztésre.
Ha a .bin-nél eltérő fájlkiterjesztést szeretne használni, cserélje le a .bin a következő parancsokban a kívánt fájlkiterjesztésre.
A következő parancsokban a {PATH} helyőrző a _framework közzétett publish mappa elérési útja.
Fájlkiterjesztések átnevezése a mappában:
dir {PATH} | rename-item -NewName { $_.name -replace ".dll\b",".bin" }
Fájlkiterjesztések átnevezése a blazor.boot.json fájlban:
((Get-Content {PATH}\blazor.boot.json -Raw) -replace '.dll"','.bin"') | Set-Content {PATH}\blazor.boot.json
Ha a szolgáltatásvégző objektumok azért is használatban vannak, mert az alkalmazás progresszív webalkalmazás (PWA):
((Get-Content {PATH}\service-worker-assets.js -Raw) -replace '.dll"','.bin"') | Set-Content {PATH}\service-worker-assets.js
Az előző parancsban a {PATH} helyőrző a közzétett service-worker-assets.js fájl elérési útja.
A tömörített blazor.boot.json fájl kezeléséhez alkalmazza az alábbi módszerek egyikét:
- Tömörítse újra a frissített
blazor.boot.jsonfájlt, így újblazor.boot.json.gzésblazor.boot.json.brfájlokat hoz létre. (Recommended) - Távolítsa el a tömörített
blazor.boot.json.gzésblazor.boot.json.brfájlokat. (Ezzel a módszerrel a tömörítés le van tiltva.)
Egy progresszív webalkalmazás (PWA) tömörített service-worker-assets.js fájljához kövesse az alábbi módszerek egyikét:
- Tömörítse újra a frissített
service-worker-assets.jsfájlt, így újservice-worker-assets.js.brésservice-worker-assets.js.gzfájlokat hoz létre. (Recommended) - Távolítsa el a tömörített
service-worker-assets.js.gzésservice-worker-assets.js.brfájlokat. (Ezzel a módszerrel a tömörítés le van tiltva.)
A .NET 6/7-ben a Windows bővítményváltozásának automatizálásához az alábbi módszer a projekt gyökerénél elhelyezett PowerShell-szkriptet használja. A következő szkript, amely letiltja a tömörítést, a további módosítás alapja, ha újra szeretné tömöríteni a blazor.boot.json fájlt és a service-worker-assets.js fájlt, ha az alkalmazás progresszív webalkalmazás (PWA). A mappa elérési útja publish a szkriptnek lesz átadva a végrehajtáskor.
ChangeDLLExtensions.ps1::
param([string]$filepath)
dir $filepath\wwwroot\_framework | rename-item -NewName { $_.name -replace ".dll\b",".bin" }
((Get-Content $filepath\wwwroot\_framework\blazor.boot.json -Raw) -replace '.dll"','.bin"') | Set-Content $filepath\wwwroot\_framework\blazor.boot.json
Remove-Item $filepath\wwwroot\_framework\blazor.boot.json.gz
Remove-Item $filepath\wwwroot\_framework\blazor.boot.json.br
Ha a szolgáltatásvégző objektumok azért is használatban vannak, mert az alkalmazás progresszív webalkalmazás (PWA), adja hozzá a következő parancsokat:
((Get-Content $filepath\wwwroot\service-worker-assets.js -Raw) -replace '.dll"','.bin"') | Set-Content $filepath\wwwroot\service-worker-assets.js
Remove-Item $filepath\wwwroot\service-worker-assets.js.gz
Remove-Item $filepath\wwwroot\service-worker-assets.js.br
A projektfájlban a szkript végrehajtása az alkalmazás Release konfigurációhoz való közzététele után történik:
<Target Name="ChangeDLLFileExtensions" AfterTargets="AfterPublish" Condition="'$(Configuration)'=='Release'">
<Exec Command="powershell.exe -command "& {.\ChangeDLLExtensions.ps1 '$(SolutionDir)'}"" />
</Target>
Az alkalmazás közzététele után manuálisan újratömörítheti a blazor.boot.json-t, és a service-worker-assets.js-t, ha használatban van, hogy újra engedélyezze a tömörítést.
Note
Amikor átnevezi és lusta betöltéssel használja ugyanazokat az összeállításokat, tekintse meg az ASP.NET Core útmutatásait a lusta összetevők betöltésére vonatkozóan Blazor WebAssembly.
Az alkalmazás kiszolgálója általában statikus eszközkonfigurációt igényel a fájlok frissített kiterjesztéssel való kiszolgálásához. Az IIS által üzemeltetett alkalmazásokhoz adjon hozzá egy MIME-térképbejegyzést (<mimeMap>) az új fájlkiterjesztéshez egy egyéni <staticContent> fájl statikus tartalomszakaszában (web.config). Az alábbi példa feltételezi, hogy a fájlkiterjesztés .dll-ról .bin-ra módosul:
<staticContent>
...
<mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
...
</staticContent>
Ha tömörítés van használatban, tartalmazzon frissítést a tömörített fájlokhoz:
<mimeMap fileExtension=".bin.br" mimeType="application/octet-stream" />
<mimeMap fileExtension=".bin.gz" mimeType="application/octet-stream" />
Távolítsa el a .dll fájlkiterjesztés bejegyzését:
- <mimeMap fileExtension=".dll" mimeType="application/octet-stream" />
Tömörített .dll fájlok bejegyzéseinek eltávolítása, ha tömörítés van használatban:
- <mimeMap fileExtension=".dll.br" mimeType="application/octet-stream" />
- <mimeMap fileExtension=".dll.gz" mimeType="application/octet-stream" />
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.
Az üzembe helyezés különféle hibái
Általában üzembe helyezéskor:
- A rendszer csak a módosított fájlokat cseréli le, ami általában gyorsabb üzembe helyezést eredményez.
- Az új üzembe helyezés részét nem képező meglévő fájlok megmaradnak az új üzembe helyezéshez.
Ritka esetekben egy korábbi üzembe helyezésből hátramaradt fájlok tönkretehetik az új üzembe helyezést. A meglévő üzembe helyezés teljes törlése (vagy a helyileg közzétett alkalmazás az üzembe helyezés előtt) megoldhatja a sérült üzembe helyezéssel kapcsolatos problémát. A meglévő üzembe helyezés törlése gyakran elegendő egyszer a probléma megoldásához, beleértve a DevOps építési és telepítési folyamatát is.
Ha úgy ítéli meg, hogy a DevOps buildelési és üzembe helyezési folyamat használatakor mindig szükség van egy korábbi üzembe helyezés törlésére, ideiglenesen hozzáadhat egy lépést a buildelési folyamathoz, hogy törölje az egyes új telepítések korábbi üzembe helyezését, amíg meg nem hárítja a sérülés pontos okát.