Oktatás
Modul
Gyakorlati képzés a ASP.NET Core-alkalmazások üzembe helyezéséhez és távoli hibakereséséhez Azure-alkalmazás Szolgáltatásban közvetlenül a Visual Studio 2022 használatával.
Ezt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Megjegyzés
Ez nem a cikk legújabb verziója. Az aktuális kiadásért lásd ennek a cikknek a .NET 9-es verzióját.
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. Az aktuális kiadásért lásd ennek a cikknek a .NET 9-es verzióját.
Fontos
Ezek az információk egy olyan előzetes termékre vonatkoznak, amelyet a kereskedelmi forgalomba kerülés előtt jelentősen módosíthatnak. A Microsoft nem vállal kifejezett vagy hallgatólagos szavatosságot az itt megadott információkra vonatkozóan.
Az aktuális kiadásért lásd ennek a cikknek a .NET 9-es verzióját.
Ez a cikk az Blazor alkalmazások hibakeresését ismerteti, beleértve Blazor WebAssembly alkalmazások hibakeresését böngészőfejlesztői eszközökkel vagy integrált fejlesztői környezettel (IDE).
Blazor Web Apphibakeresést végezhet a Visual Studióban vagy a Visual Studio Code-ban.
Blazor WebAssembly alkalmazások hibakeresése:
A Blazor WebAssembly hibakereséshez elérhető forgatókönyvek a következők:
A nem támogatott forgatókönyvek a következők:
Blazor Server alkalmazások hibakeresése a Visual Studióban vagy a Visual Studio Code-ban végezhető el.
Blazor WebAssembly alkalmazások hibakeresése:
Az Blazor WebAssembly-alkalmazások nem támogatott forgatókönyvei a következők:
Blazor Server alkalmazások hibakeresése a Visual Studióban vagy a Visual Studio Code-ban végezhető el.
Blazor WebAssembly alkalmazások hibakeresése:
Az Blazor WebAssembly-alkalmazások nem támogatott forgatókönyvei a következők:
Program
fájl töréspontjai, valamint az OnInitialized{Async}
életciklus-metódusok töréspontjai, az alkalmazástól kért első oldal által betöltött összetevők.Ez a szakasz a hibakeresés előfeltételeit ismerteti.
A következő böngészők legújabb verziója:
A hibakereséshez a következő böngészők legújabb verziója szükséges:
Győződjön meg arról, hogy a tűzfalak vagy proxyk nem blokkolják a hibakeresési proxyval való kommunikációt (NodeJS
folyamat). További információt a tűzfal konfigurációs című szakaszban talál.
Megjegyzés
A macOS-en futó Apple Safari jelenleg nem támogatott.
A Visual Studio vagy a Visual Studio Code legújabb verziójára van szükség.
A Visual Studio Code használatához a Visual Studio Code c# dev kit
" kifejezéssel a bővítmény megkereséséhez:
A C# Dev Kit telepítése automatikusan telepíti a következő bővítményeket:
Ha figyelmeztetéseket vagy hibákat tapasztal, megnyithat egy problémát (microsoft/vscode-dotnettools
GitHub-adattárat), amely leírja a problémát.
Az alszakasz útmutatása az ügyféloldali hibakeresésre vonatkozik.
Nyissa meg az indítási projekt Properties/launchSettings.json
fájlját. Ellenőrizze, hogy a következő inspectUri
tulajdonság szerepel-e a fájl profiles
csomópontjának minden indítási profiljában. Ha a következő tulajdonság nincs jelen, vegye fel az egyes profilokbe:
"inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}"
A inspectUri
tulajdonság:
A WebSocket protokoll helyőrző értékeit (wsProtocol
), a gazdagép (url.hostname
), a port (url.port
) és a böngészőben található felügyelő URI-t (browserInspectUri
) a keretrendszer biztosítja.
Blazor Web Apps: Microsoft.AspNetCore.Components.WebAssembly.Server
: Egy belső csomagra (Microsoft.NETCore.BrowserDebugHost.Transport
) hivatkozik olyan szerelvények esetében, amelyek megosztják a böngésző hibakeresési gazdagépét.
Blazor Server: Microsoft.AspNetCore.Components.WebAssembly.Server
: Olyan szerelvények egy belső csomagra (Microsoft.NETCore.BrowserDebugHost.Transport
) hivatkoznak, amelyek megosztják a böngésző hibakeresési hosztot.
Önálló Blazor WebAssembly: Microsoft.AspNetCore.Components.WebAssembly.DevServer
: Fejlesztési kiszolgáló Blazor alkalmazások létrehozásakor. Belsőleg hívja a UseWebAssemblyDebugging köztes szoftver hozzáadásához és a Blazor WebAssembly alkalmazások hibakereséséhez a Chromium fejlesztői eszközein belül.
Üzemeltetett Blazor WebAssembly:
Microsoft.AspNetCore.Components.WebAssembly.DevServer
: Fejlesztési kiszolgáló Blazor alkalmazások létrehozásakor. Belsőleg hívja a UseWebAssemblyDebugging köztes szoftver hozzáadásához és a Blazor WebAssembly alkalmazások hibakereséséhez a Chromium fejlesztői eszközein belül.Microsoft.AspNetCore.Components.WebAssembly.Server
: A belső csomagra (Microsoft.NETCore.BrowserDebugHost.Transport
) hivatkozik azokhoz a szerelvényekhez, amelyek a böngésző hibakeresési gazdagépét használják.Megjegyzés
A csomagok .NET-alkalmazásokhoz való hozzáadásáról a Csomagok telepítése és kezeléseCsomaghasználati munkafolyamat (NuGet-dokumentáció)című cikkben talál útmutatást. Ellenőrizze a megfelelő csomagverziókat a NuGet.org.
Az ebben a szakaszban szereplő példa feltételezi, hogy létrehozott egy Blazor Web App az Automatikus (Kiszolgáló és WebAssembly) interaktív renderelési módjával és az összetevők közötti interaktivitás helyével.
currentCount++;
) Counter
összetevőjének (Pages/Counter.razor
) .Client
sorára.Counter
lapot a /counter
címen. Várjon néhány másodpercet, amíg a hibakeresési proxy betöltődik és fut. Válassza a Kattintson gombra a töréspont eléréséhez.currentCount
mező értékét a Helyiek ablakban.A töréspontok statikusan renderelt és interaktív módon renderelt kiszolgálóoldali összetevőkben is megtalálhatók a kiszolgálóprojektben.
Weather
összetevőt (Components/Pages/Weather.razor
), és állítson be töréspontot bárhol a OnInitializedAsync
metódusban.Weather
oldalra a /weather
címen. Várjon néhány másodpercet, amíg a hibakeresési proxy betöltődik és fut. Az alkalmazás végrehajtása a töréspontnál leáll.A töréspontok nem találatot az alkalmazás indításakor, mielőtt a hibakeresési proxy fut. Ide tartoznak a Program
fájl töréspontjai, valamint az OnInitialized{Async}
életciklus-metódusok töréspontjai, az alkalmazástól kért első oldal által betöltött összetevők.
currentCount++;
sorban a Counter
összetevőn (Pages/Counter.razor
).Counter
lapot a /counter
címen. Várjon néhány másodpercet, amíg a hibakeresési proxy betöltődik és fut. Válassza a Kattintson gombra a töréspont eléréséhez.currentCount
mező értékét a Helyiek ablakban.A töréspontok nem találatot az alkalmazás indításakor, mielőtt a hibakeresési proxy fut. Ide tartoznak a Program
fájl töréspontjai, valamint az OnInitialized{Async}
életciklus-metódusok töréspontjai, az alkalmazástól kért első oldal által betöltött összetevők.
currentCount++;
sorban a Counter
összetevőn (Pages/Counter.razor
).Counter
lapot a /counter
címen. Várjon néhány másodpercet, amíg a hibakeresési proxy betöltődik és fut. Válassza a Kattintson gombra a töréspont eléréséhez.currentCount
mező értékét a Helyiek ablakban.A töréspontok nem találatot az alkalmazás indításakor, mielőtt a hibakeresési proxy fut. Ide tartoznak a Program
fájl töréspontjai, valamint az OnInitialized{Async}
életciklus-metódusok töréspontjai, az alkalmazástól kért első oldal által betöltött összetevők.
Ha a Server projekt ki van jelölve Megoldáskezelő, nyomja le F5 billentyűkombinációt az alkalmazás hibakeresőben való futtatásához.
Ha Chromium-alapú böngészővel ( például Google Chrome vagy Microsoft Edge) végzett hibakereséskor egy új böngészőablak nyílik meg, amely külön profillal rendelkezik a hibakeresési munkamenethez, ahelyett, hogy megnyitna egy lapot egy meglévő böngészőablakban a felhasználó profiljával. Ha a felhasználói profillal végzett hibakeresés követelmény,
A Client projektben állítson be töréspontot a currentCount++;
összetevő (Counter
) Pages/Counter.razor
sorára.
Nyissa meg a böngészőben a Counter
lapot a /counter
címen. Várjon néhány másodpercet, amíg a hibakeresési proxy betöltődik és fut. Válassza a Kattintson gombra a töréspont eléréséhez.
A Visual Studióban vizsgálja meg a currentCount
mező értékét a Helyiek ablakban.
A végrehajtás folytatásához nyomja le F5.
A kiszolgálókódokat a Server projektben is hibakeresésre használhatja:
Pages/FetchData.razor
lapon a OnInitializedAsync-ben.WeatherForecastController
-beli Get
műveletmetódusban.Fetch Data
lapot, és keresse meg a FetchData
összetevő első töréspontját, mielőtt HTTP-kérést ad ki a kiszolgálónak.WeatherForecastController
helyen.A töréspontok nem találatot az alkalmazás indításakor, mielőtt a hibakeresési proxy fut. Ide tartoznak a Program
fájl töréspontjai, valamint az OnInitialized{Async}
életciklus-metódusok töréspontjai, az alkalmazástól kért első oldal által betöltött összetevők.
Futó Blazor alkalmazáshoz való csatoláshoz nyissa meg a .vscode/launch.json
fájlt, és cserélje le a {URL}
helyőrzőt az alkalmazás futtatásának URL-címére:
{
"name": "Attach and Debug",
"type": "blazorwasm",
"request": "attach",
"url": "{URL}"
}
Az alábbi táblázatban szereplő indítási konfigurációs beállítások támogatottak az blazorwasm
hibakeresési típushoz (.vscode/launch.json
).
Opció | Leírás |
---|---|
browser |
A hibakeresési munkamenethez elindítandó böngésző. Állítsa edge vagy chrome értékre. Alapértelmezés szerint edge . |
cwd |
Az alkalmazás elindításához használt munka könyvtár. |
request |
A launch használatával elindíthat és csatolhat hibakeresési munkamenetet egy Blazor WebAssembly-alkalmazáshoz vagy attach , ha hibakeresési munkamenetet szeretne csatolni egy már futó alkalmazáshoz. |
timeout |
A hibakeresési munkamenet csatolására váró ezredmásodpercek száma. Alapértelmezés szerint 30 000 milliszekundum (30 másodperc). |
trace |
Naplók létrehozására szolgál a JS hibakeresőből. Állítsa true -ra a naplók létrehozásához. |
url |
A böngészőben a hibakereséskor megnyitandó URL-cím. |
webRoot |
A webkiszolgáló abszolút elérési útját adja meg. Be kell állítani, ha egy alkalmazás egy alútvonalról van kézbesítve. |
Az alábbi táblázatban szereplő további lehetőségek csak üzemeltetett Blazor WebAssembly alkalmazásokra vonatkoznak.
Opció | Leírás |
---|---|
env |
Az elindított folyamat számára biztosítandó környezeti változók. Csak akkor alkalmazható, ha hosted true van beállítva. |
hosted |
Egy üzemeltetett true -alkalmazás indításakor és hibakeresésekor Blazor WebAssembly kell beállítani. |
program |
A hosztolt alkalmazás kiszolgálójának futtatására szolgáló futtatható állományhoz való hivatkozás. Be kell állítani, ha hosted true . |
Az ebben a szakaszban található útmutató az alábbi Blazor WebAssembly alkalmazások hibakeresésére vonatkozik:
Futtassa az alkalmazást egy parancssorban dotnet watch
(vagy dotnet run
).
Nyisson meg egy böngészőt, és keresse meg az alkalmazás URL-címét.
Indítsa el a távoli hibakeresést az alábbiak lenyomásával:
A böngészőnek futnia kell engedélyezett távoli hibakereséssel, ez nem az alapértelmezett beállítás. Ha a távoli hibakeresés le van tiltva, megjelenik egy "Nem található hibakereső böngészőlap" hibaoldal, amely tartalmazza a böngésző megnyitására vonatkozó utasításokat a hibakeresési port megnyitásával. Kövesse a böngésző utasításait.
Miután követte a távoli hibakeresés engedélyezésére vonatkozó utasításokat, az alkalmazás megnyílik egy új böngészőablakban. Indítsa el a távoli hibakeresést a Gyorsbillentyű kombináció lenyomásával az új böngészőablakban:
Megnyílik egy új böngészőfül a fejlesztői eszközökkel, amelyen az alkalmazás szellemképe látható.
Megjegyzés
Ha követte az utasításokat, hogy nyisson meg egy új böngészőlapot, amelyen engedélyezve van a távoli hibakeresés, bezárhatja az eredeti böngészőablakot, így a második ablak nyitva marad az alkalmazás első lapjával, a második pedig a hibakeresővel.
A Források lapon megjelenik az alkalmazás .NET-szerelvényeinek és lapjainak listája.
Nyissa meg a file://
csomópontot. Az összetevőkódban (.razor
fájlokban) és a C# kódfájlokban (.cs
) az alkalmazás böngészőlapján a kód végrehajtásakor beállított töréspontok jelennek meg (a kezdeti lap a távoli hibakeresés indítása után nyílik meg). A töréspont elérése után lépésenként (F10) lépkedhet a kódon vagy folytathatja (F8) a kód végrehajtását a hibakeresési lapon általában.
A Chromium-alapú böngészők hibakereséséhez a Blazor egy hibakeresési proxyt biztosít, amely implementálja a Chrome DevTools Protocol-t, és a protokollt .NET-specifikus információkkal bővíti. Amikor a hibakeresési billentyűparancsot lenyomják, a Blazor a Chrome Fejlesztői Eszközöket a proxyhoz irányítja. A proxy csatlakozik a hibakereséshez használt böngészőablakhoz (ezért engedélyezni kell a távoli hibakeresést).
Az ebben a szakaszban található útmutatás a Windowson futó Firefoxban Blazor WebAssembly alkalmazások hibakeresésére vonatkozik.
Az Blazor WebAssembly-alkalmazások Firefoxban való hibakereséséhez konfigurálnia kell a böngészőt a távoli hibakereséshez és a böngészőhöz való csatlakozáshoz a böngésző fejlesztői eszközeivel a .NET WebAssembly hibakeresési proxyn keresztül.
Megjegyzés
A Firefoxban a Visual Studióban való hibakeresés jelenleg nem támogatott.
Blazor WebAssembly-alkalmazások hibakeresése a Firefoxban a fejlesztés során:
about:config
egy új böngészőlapon. Olvassa el és zárja be a megjelenő figyelmeztetést.devtools.debugger.remote-enabled
elemet a True
értékének beállításával.devtools.chrome.enabled
elemet a True
értékének beállításával.devtools.debugger.prompt-connection
a False
értékének beállításával.dotnet watch
(vagy dotnet run
).about:debugging
egy új böngészőlapon. Hagyja nyitva ezt a lapot.Debugger
lapon nyissa meg a hibakereséshez használt alkalmazás forrásfájlját a file://
csomópont alatt, és állítson be egy töréspontot. Állítson be például egy töréspontot a currentCount++;
sorra az IncrementCount
összetevő (Counter
) Pages/Counter.razor
metódusában.Counter
összetevő lapjára (/counter
) az alkalmazás böngészőlapján, és válassza a számláló gombot a töréspont eléréséhez.A hibakereső nem áll meg a nem kezelt kivételeknél, mert a Blazor elkapja a fejlesztői kód által nem kezelt kivételeket.
A kezeletlen kivételek megszakítása:
A böngésző forrástérképei lehetővé teszik, hogy a böngésző visszaképozza a lefordított fájlokat az eredeti forrásfájljaira, és gyakran használják az ügyféloldali hibakereséshez. Blazor azonban jelenleg nem fordítja le a C#-et JavaScript/WASM-re. Ehelyett Blazor il-értelmezést végez a böngészőben, így a forrástérképek nem relevánsak.
Ha egy tűzfal blokkolja a hibakeresési proxyval folytatott kommunikációt, hozzon létre egy tűzfalkivételi szabályt, amely lehetővé teszi a böngésző és a NodeJS
folyamat közötti kommunikációt.
Figyelmeztetés
A biztonsági rések elkerülése érdekében körültekintően kell módosítani a tűzfalkonfigurációt. Körültekintően alkalmazza a biztonsági útmutatást, kövesse az ajánlott biztonsági eljárásokat, és tartsa tiszteletben a tűzfal gyártója által kiadott figyelmeztetéseket.
Nyílt kommunikáció engedélyezése a NodeJS
folyamattal:
Engedélyezze, ha lehetséges, csak a
A Windows tűzfal konfigurációs útmutatója: Bejövő program vagy szolgáltatásszabály létrehozása. További információért lásd a Windows Defender tűzfal fejlett biztonsági funkciókkal és a kapcsolódó cikkeket a Windows tűzfal dokumentációs készletében.
Ha hibákba ütközik, az alábbi tippek segíthetnek:
localStorage.clear()
a töréspontok eltávolításához.localhost
szerepel a proxy megkerülő beállításai között. Ezt úgy teheti meg, hogy a NO_PROXY
környezeti változót a következőben állítja be: launchSettings.json
fájlja.NodeJS
folyamat). További információt a tűzfal konfigurációs című szakaszban talál.A Blazor keretrendszer hibakeresési proxyja nem indul el azonnal az alkalmazás indításakor, ezért előfordulhat, hogy a OnInitialized{Async}
életciklus-metódusok töréspontjai nem. Javasoljuk, hogy a metódus törzsének elején adjon hozzá egy késleltetést, hogy a hibakeresési proxy elindulhasson, mielőtt a töréspontot elérik. A késést egy if
fordító irányelv alapján is megadhatja, hogy a késés ne legyen jelen az alkalmazás kiadási buildjén.
protected override void OnInitialized()
{
#if DEBUG
Thread.Sleep(10000);
#endif
...
}
protected override async Task OnInitializedAsync()
{
#if DEBUG
await Task.Delay(10000);
#endif
...
}
Ha a Visual Studio egy kivételt dob, hogy a hibakeresési adapter nem indult el, és hogy az időtúllépés megtörtént, akkor az időtúllépést a rendszerleíró adatbázis beállításával módosíthatja:
VsRegEdit.exe set "<VSInstallFolder>" HKCU JSDebugger\Options\Debugging "BlazorTimeoutInMilliseconds" dword {TIMEOUT}
Az előző parancs {TIMEOUT}
helyőrzője ezredmásodpercben van. Például egy perc van hozzárendelve 60000
-hoz.
ASP.NET Core-visszajelzés
A(z) ASP.NET Core egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
Oktatás
Modul
Gyakorlati képzés a ASP.NET Core-alkalmazások üzembe helyezéséhez és távoli hibakereséséhez Azure-alkalmazás Szolgáltatásban közvetlenül a Visual Studio 2022 használatával.
Dokumentáció
ASP.NET Core Blazor renderelési módok
Megismerheti Blazor renderelési módokat, és hogyan alkalmazhatja őket Blazor Web Apps-ben.
ASP.NET Core Blazor-alkalmazások hibáinak kezelése
Megtudhatja, hogyan kezeli a ASP.NET Core Blazor a kezeletlen kivételeket, és hogyan fejleszthet olyan alkalmazásokat, amelyek észlelik és kezelik a hibákat.
ASP.NET Core Blazor teljesítményével kapcsolatos ajánlott eljárások
Tippek az ASP.NET Core Blazor-alkalmazások teljesítményének növeléséhez és a gyakori teljesítményproblémák elkerüléséhez.