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.
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 bemutatja, hogyan konfigurálhatja és olvashatja el a környezetet egy Blazor alkalmazásban.
Ha helyileg futtat egy alkalmazást, a környezet alapértelmezés szerint a következő lesz Development: . Az alkalmazás közzétételekor a környezet alapértelmezés szerint a következő lesz Production: .
A következő konvenciókat javasoljuk:
A helyi fejlesztéshez mindig használja a "
Development" környezet nevét. Ennek az az oka, hogy a ASP.NET Core-keretrendszer pontosan ezt a nevet várja az alkalmazás és az eszköz helyi fejlesztési futtatásához való konfigurálásakor.Teszteléshez, előkészítéshez és éles környezetekhez mindig tegye közzé és telepítse az alkalmazást. Bármilyen környezetelnevezési sémát használhat a közzétett alkalmazásoknál, de mindig olyan alkalmazásbeállítási fájlneveket használjon, amelyek környezetszegmense pontosan egyezik a környezet nevével. Az előkészítéshez használja a "
Staging" (nagybetűs "S") nevet a környezet neveként, és nevezze el az alkalmazásbeállítások fájlját ennek megfelelően (appsettings.Staging.json). Éles környezetben használja a "Production" (nagybetűs "P") nevet a környezet neveként, és adja meg az alkalmazásbeállítások fájljának a megfelelő nevet (appsettings.Production.json).
A környezet beállítása
A környezet a következő módszerek bármelyikével van beállítva:
- Blazor Web App vagy Blazor Server: Az általános ASP.NET Core-alkalmazásokhoz használja az ASP.NET Core-futtatókörnyezetekben ismertetett módszerek bármelyikét.
- Bármely Blazor alkalmazás: Blazor konfiguráció indítása
- Önálló Blazor WebAssembly:
<WasmApplicationEnvironmentName>tulajdonság
Egy ügyfélen Blazor Web Appa környezet egy HTML-megjegyzésen keresztül lesz meghatározva a kiszolgálóról, amellyel a fejlesztők nem kommunikálnak:
<!--Blazor-WebAssembly:{"environmentName":"Development", ...}-->
Önálló Blazor WebAssembly alkalmazás esetén állítsa be a környezetet az <WasmApplicationEnvironmentName> alkalmazás projektfájljában (.csproj) található MSBuild tulajdonsággal. A következő példa a környezetet állítja be Staging :
<WasmApplicationEnvironmentName>Staging</WasmApplicationEnvironmentName>
Az alapértelmezett környezetek a Development buildeléshez és Production a közzétételhez tartoznak.
A buildelési/közzétételi műveletek során több módszer is létezik a környezet beállítására egy különálló Blazor WebAssembly alkalmazásban, és az ügyfélen induló vagy futó alkalmazások egyik megközelítése:
A tulajdonságérték beállítása, amikor a
dotnet buildvagy adotnet publishvégrehajtásra kerül. Az alábbi példa egy alkalmazás közzétételekor állítja be a környezetetStaging:dotnet publish -p:WasmApplicationEnvironmentName=StagingÁllítsa be a tulajdonságot a buildelés vagy közzététel során az alkalmazás Visual Studióban való konfigurációja alapján. Az alábbi tulajdonságcsoportok használhatók az alkalmazás projektfájljában vagy bármely közzétételi konfigurációs fájlban (
.pubxml). Adjon hozzá további tulajdonságcsoportokat a használatban lévő más buildkonfigurációkhoz.<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> <WasmApplicationEnvironmentName>Development</WasmApplicationEnvironmentName> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)' == 'Release'"> <WasmApplicationEnvironmentName>Production</WasmApplicationEnvironmentName> </PropertyGroup>A környezet egy közzétételi profil használata alapján állítható be. Az alábbi példában az első feltétel úgy állítja be a környezetet, hogy
Developmentamikor nem használ közzétételi profilt (a profil nélküli buildelési és közzétételi műveletekre is vonatkozik), míg a második feltétel a környezetnekProductiona közzétételi profilok használatakor való beállítására vonatkozik:<PropertyGroup Condition="'$(PublishProfile)' == ''"> <WasmApplicationEnvironmentName>Development</WasmApplicationEnvironmentName> </PropertyGroup> <PropertyGroup Condition="'$(PublishProfile)' != ''"> <WasmApplicationEnvironmentName>Production</WasmApplicationEnvironmentName> </PropertyGroup>Hozzon létre egy egyéni kiszolgálóoldali webes API-végpontot. Az önálló Blazor WebAssembly alkalmazás a webes API-ból kéri le a környezetét az alkalmazás indításakor vagy igény szerint, miközben fut. Az értéket vagy a
WebAssemblyStartOptions-nek kell átadni, vagy awithApplicationEnvironment-vel.Megjegyzés:
A .NET referenciaforrásra mutató dokumentációs hivatkozások általában betöltik az adattár alapértelmezett ágát, amely a .NET következő kiadásának aktuális fejlesztését jelöli. Egy adott kiadás címkéjének kiválasztásához használja az Ágak vagy címkék közötti váltás legördülő listát. További információ: A ASP.NET Core-forráskód (dotnet/AspNetCore.Docs #26205) verziócímkéjének kiválasztása.
- Blazor Web App vagy Blazor Server: Az általános ASP.NET Core-alkalmazásokhoz használja az ASP.NET Core-futtatókörnyezetekben ismertetett módszerek bármelyikét.
- Bármely Blazor alkalmazás:
-
Blazor WebAssembly:
Blazor-Environmentfejléc
Egy ügyfélen Blazor Web Appa környezet egy köztes szoftveren keresztül lesz meghatározva a kiszolgálóról, amely egy fejlécen Blazor-Environmentkeresztül közli a környezetet a böngészővel. A fejléc beállítja a környezetet, amikor az WebAssemblyHost ügyféloldali Program fájlban (WebAssemblyHostBuilder.CreateDefault) jön létre.
A helyileg futó önálló Blazor WebAssembly alkalmazások esetében a fejlesztői kiszolgáló hozzáadja a Blazor-Environment fejlécet az üzemeltetési környezettől kapott környezetnévvel. Az üzemeltetési környezet a projekt ASPNETCORE_ENVIRONMENT fájlja által létrehozott Properties/launchSettings.json környezeti változóból állítja be a környezetet. A projektsablonból létrehozott projekt esetén a környezeti változó alapértelmezett értéke Blazor WebAssemblyDevelopment. További információ: Az ügyféloldali környezet beállítása fejlécszakaszon keresztül .
- Blazor Server: Használja a Az ASP.NET Core futtatókörnyezetek című részben ismertetett megközelítések bármelyikét általános ASP.NET Core alkalmazásokhoz.
- Blazor Server vagy Blazor WebAssembly:
-
Blazor WebAssembly:
Blazor-Environmentfejléc
Egy üzemeltetett Blazor WebAssembly alkalmazás ügyfélén a környezet egy köztes szoftveren keresztül lesz meghatározva a kiszolgálóról, amely egy fejlécen Blazor-Environmentkeresztül közli a környezetet a böngészővel. A fejléc beállítja a környezetet, amikor az WebAssemblyHost ügyféloldali Program fájlban (WebAssemblyHostBuilder.CreateDefault) jön létre.
A helyileg futó önálló Blazor WebAssembly alkalmazások esetében a fejlesztői kiszolgáló hozzáadja a Blazor-Environment fejlécet az üzemeltetési környezettől kapott környezetnévvel. Az üzemeltetési környezet a projekt ASPNETCORE_ENVIRONMENT fájlja által létrehozott Properties/launchSettings.json környezeti változóból állítja be a környezetet. A projektsablonból létrehozott projekt esetén a környezeti változó alapértelmezett értéke Blazor WebAssemblyDevelopment. További információ: Az ügyféloldali környezet beállítása fejlécszakaszon keresztül .
Ha az alkalmazás helyileg fut a fejlesztés során, az alkalmazás alapértelmezés szerint a Development környezetet használja. Az alkalmazás közzététele alapértelmezetten a környezetet Production-re állítja.
Az ASP.NET Core alkalmazás konfigurációjával kapcsolatos általános útmutatásért tekintse meg az ASP.NET Core futtatókörnyezeteket. A kiszolgálóoldali alkalmazás konfigurálásához a fejlesztési és tesztelési (például Development) környezeten kívüli statikus fájlok esetén lásd a Staging dokumentációt.
Az ügyféloldali környezet beállítása indítási konfigurációval Blazor
Az alábbi példa Blazor elindul a Staging környezetben, ha a gazdagép neve tartalmazza localhost. Ellenkező esetben a környezet az alapértelmezett értékre van állítva.
Blazor Web App:
<script src="{BLAZOR SCRIPT}" autostart="false"></script>
<script>
if (window.location.hostname.includes("localhost")) {
Blazor.start({
webAssembly: {
environment: "Staging"
}
});
} else {
Blazor.start();
}
</script>
Az előző példában a {BLAZOR SCRIPT} helyőrző a Blazor szkript elérési útja és fájlneve. A szkript helyéről lásd ASP.NET Core Blazor projektstruktúra.
Megjegyzés:
Ha Blazor Web Appa webAssembly>environmenttulajdonságot konfigurációban Blazor.start állítja be, célszerű a kiszolgálóoldali környezetet a tulajdonságon environment beállított környezethez igazítani. Ellenkező esetben a kiszolgálón az előrendelés más környezetben működik, mint az ügyfél renderelése, ami tetszőleges hatásokat eredményez. A környezet Blazor Web Appbeállításával kapcsolatos általános útmutatásért lásd a ASP.NET Core futtatókörnyezeteket.
Önálló Blazor WebAssembly:
<script src="{BLAZOR SCRIPT}" autostart="false"></script>
<script>
if (window.location.hostname.includes("localhost")) {
Blazor.start({
environment: "Staging"
});
} else {
Blazor.start();
}
</script>
Az előző példában a {BLAZOR SCRIPT} helyőrző a Blazor szkript elérési útja és fájlneve. A szkript helyéről lásd ASP.NET Core Blazor projektstruktúra.
environment A tulajdonság használata felülírja a fejléc által Blazor-Environmentbeállított környezetet.
Az előző megközelítés úgy állítja be az ügyfél környezetét, hogy nem változtatja meg a Blazor-Environment fejléc értékét, és nem módosítja a kiszolgálóprojekt konzolnaplózását az indítási környezetről egy Blazor Web App globális Interaktív WebAssembly-renderelést alkalmazó környezetben.
Ha egy különálló Blazor WebAssembly alkalmazásban vagy a .ClientBlazor Web App projektjében szeretné naplózni a környezetet a konzolon, helyezze a következő C#-kódot a Program fájlba, miután a WebAssemblyHost-t létrehozta a WebAssemblyHostBuilder.CreateDefault-el, és mielőtt a projektet építő és futtató sort (await builder.Build().RunAsync();) végrehajtja:
Console.WriteLine(
$"Client Hosting Environment: {builder.HostEnvironment.Environment}");
További információt a Blazor indításról az ASP.NET Core Blazor indításicímű témakörben találhat.
Az ügyféloldali környezet beállítása fejlécen keresztül
Blazor WebAssembly az alkalmazások a fejléc használatával beállíthatják a Blazor-Environment környezetet. Pontosabban, a _framework/blazor.boot.json fájlra be kell állítani a válaszfejlécet, de a fájkiszolgáló válaszain nem árt, ha más Blazor fájlkérelmekre vagy a teljes Blazor üzembe helyezésre is beállítják a fejlécet.
Bár a Blazor keretrendszer a fejléc nevét vegyes nagy- és kisbetűs kebab-esetben adja meg (Blazor-Environment), nyugodtan használhatja teljes kisbetűs vagy teljes nagybetűs kebab-esetben is (blazor-environment, BLAZOR-ENVIRONMENT).
Ha a helyi fejlesztés a "beépített fejlesztői kiszolgálóvalBlazor" fut, a fejléc értékét Blazor-Environment a projekt fájljában ASPNETCORE_ENVIRONMENT lévő környezeti változó értékének Properties/launchSettings.json beállításával szabályozhatja. Ha helyileg fut a fejlesztői kiszolgálóval, az alkalmazás környezetének Blazor.start meghatározásához a konfigurációs (environment kulcs)>Blazor-Environment válaszfejléc (blazor.boot.json fájl) környezeti változó () >ASPNETCORE_ENVIRONMENT az elsőbbséget élvezilaunchSettings.json. Nem használhatja a ASPNETCORE_ENVIRONMENT környezeti változó (launchSettings.json) megközelítést egy üzembe helyezett Blazor WebAssembly alkalmazáshoz. A technika csak az alkalmazás helyi futtatásainál működik a fejlesztői kiszolgálóval.
IIS
Az alábbi IIS-példában az egyéni fejléc (Blazor-Environment) hozzáadódik a közzétett web.config fájlhoz. A web.config fájl abban a bin/Release/{TARGET FRAMEWORK}/publish mappában található, ahol a {TARGET FRAMEWORK} helyőrző a cél keretrendszer:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="Blazor-Environment" value="Staging" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Megjegyzés:
Ha olyan egyéni web.config fájlt szeretne használni az IIS-hez, amely nem íródik felül, amikor az alkalmazást közzéteszik a mappában, olvassa publish című témakört.Blazor WebAssembly
Nginx
Nginx-kiszolgálók esetén használja a add_header következő irányelvet ngx_http_headers_module:
http {
server {
...
location / {
...
add_header Blazor-Environment "Staging";
}
}
}
További információt a következő források tartalmaznak:
- Az Nginx dokumentációja
- ASP.NET Core Blazor WebAssembly gazdagépe és üzembe helyezése az Nginx használatával
Apache
Apache-kiszolgálók esetén használja a Header modul irányelvét mod_headers :
<VirtualHost *:80>
...
Header set Blazor-Environment "Staging"
...
</VirtualHost>
További információt a következő források tartalmaznak:
-
Apache-dokumentáció (keressen rá a legújabb kiadásban a "
mod_headers") kifejezésre. - A ASP.NET Core Blazor WebAssembly gazdagépe és üzembe helyezése az Apache használatával
Az Azure App Service környezetének beállítása
Önálló Blazor WebAssembly alkalmazások esetén manuálisan is beállíthatja a környezetet az indítási konfiguráción vagy a Blazor-Environment fejlécen keresztül.
Kiszolgálóoldali alkalmazások esetén állítsa be a környezetet egy ASPNETCORE_ENVIRONMENT azure-beli alkalmazásbeállításon keresztül:
Győződjön meg arról, hogy az alkalmazásbeállítások fájlneveiben a környezeti szegmensek burkolata pontosan megegyezik a környezetnévházzal. Például a
Stagingkörnyezethez tartozó alkalmazásbeállítások fájlneve aappsettings.Staging.json. Ha a fájl neveappsettings.staging.json(kisbetűs "s"), a fájl nem található, és a fájl beállításai nem használhatók aStagingkörnyezetben.A Visual Studio üzembe helyezéséhez győződjön meg arról, hogy az alkalmazás a megfelelő üzembehelyezési ponton van üzembe helyezve. Egy elnevezett
BlazorAzureAppSamplealkalmazás esetében az alkalmazás üzembe helyezése azStagingüzembehelyezési ponton történik.A környezet üzembehelyezési pontjához tartozó Azure Portalon állítsa be a környezetet az
ASPNETCORE_ENVIRONMENTalkalmazásbeállítással. EgyBlazorAzureAppSampleelnevezésű alkalmazás esetében az előkészítési App Service-foglalat neveBlazorAzureAppSample/Staging. AStagingpont konfigurációjához hozzon létre egy alkalmazásbeállítástASPNETCORE_ENVIRONMENTa következőStagingértékkel: . Az üzembehelyezési pont beállítása engedélyezve van a beállításhoz.
Amikor egy böngészőben kérik, az BlazorAzureAppSample/Staging alkalmazás betöltődik a környezetben a Staging következő helyen https://blazorazureappsample-staging.azurewebsites.net: .
Amikor az alkalmazás be van töltve a böngészőbe, a blazor.boot.json válaszfejléc mutatja, hogy a Blazor-Environment fejléc értéke Staging.
A fájlból származó appsettings.{ENVIRONMENT}.json alkalmazásbeállításokat az alkalmazás tölti be, ahol a {ENVIRONMENT} helyőrző az alkalmazás környezete. Az előző példában a appsettings.Staging.json fájl beállításai betöltődnek.
A környezet olvasása egy Blazor WebAssembly alkalmazásban
Szerezze be az alkalmazás környezetét egy összetevőn keresztül úgy, hogy beinjektálja a IWebAssemblyHostEnvironment-t, és elolvassa a Environment tulajdonságot.
ReadEnvironment.razor:
@page "/read-environment"
@using Microsoft.AspNetCore.Components.WebAssembly.Hosting
@inject IWebAssemblyHostEnvironment Env
<h1>Environment example</h1>
<p>Environment: @Env.Environment</p>
Olvasd el a környezetet ügyféloldalon egy Blazor Web App
Feltételezve, hogy az előrendelés nincs letiltva egy összetevő vagy az alkalmazás esetében, a .Client projekt egyik összetevője előrerendelt a kiszolgálón. Mivel a kiszolgáló nem rendelkezik regisztrált IWebAssemblyHostEnvironment szolgáltatással, nem lehet beszúrni a szolgáltatást, és a szolgáltatás implementációjának gazdakörnyezet kiterjesztési módszereit és tulajdonságait használni a kiszolgáló előzetes renderelése során. Ha a szolgáltatást egy Interaktív WebAssembly vagy Interaktív automatikus összetevőbe injektálja, az a következő futtatókörnyezeti hibát eredményezi:
There is no registered service of type 'Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment'.
Ennek kezeléséhez hozzon létre egy egyéni szolgáltatás-implementációt IWebAssemblyHostEnvironment a kiszolgálón. További információkért és egy példa implementációért olvassa el az szerveren található egyéni szolgáltatás implementációját az Előrenderelési cikkben, amely később jelenik meg a Blazor dokumentációban.
Az ügyféloldali környezet olvasása indításkor
Az indítás során a WebAssemblyHostBuilder tulajdonágon keresztül a IWebAssemblyHostEnvironment elérhetővé teszi a HostEnvironment-t, amely lehetővé teszi a környezetspecifikus logikát a gazdagépszerkesztő kódjában.
A Program fájlban:
if (builder.HostEnvironment.Environment == "Custom")
{
...
};
A következő kényelmi kiterjesztési módszerek WebAssemblyHostEnvironmentExtensions lehetővé teszik az aktuális környezet ellenőrzését a Development, Production, Staging és egyéni környezetnevekkel szemben.
A Program fájlban:
if (builder.HostEnvironment.IsStaging())
{
...
};
if (builder.HostEnvironment.IsEnvironment("Custom"))
{
...
};
A IWebAssemblyHostEnvironment.BaseAddress tulajdonság akkor használható indításkor, ha a NavigationManager szolgáltatás nem érhető el.