Nõuded: .NET/C# abil rakendusi arendades ei ole ükski arendaja suutnud tagada programmi stabiilset ja usaldusväärset täitmist, mis võib olla seotud arendaja koodiloogika või kasutaja töökeskkonnagaPole 100% garantiid, et sinu arendatud rakendus on probleemivabaProbleem ei ole kohutav, aga kohutav on see, et on probleem, mis ei suuda põhjust leida ega lahendada.
Kui rakendust ei käivitata ootuspäraselt ja tekib ebanormaalne väljumine, kuidas saab DMP dump-faili automaatselt genereerida probleemi lahendamiseks?
Dump on fail, mis sisaldab protsessi hetkepilti selle loomise ajal ja mida saab kasutada rakenduse oleku kontrollimiseks. Kui on keeruline siduda silurit .NET rakendusega, näiteks tootmis- või CI keskkonnaga, saad rakenduse silumiseks kasutada dumpe. Dumpide kasutamine jäädvustab probleemsete protsesside seisundi ning olekut saab otse kontrollida ilma rakendust peatamata.
Koguge prügimäed
Keskkonnamuutujate abil saad seadistada oma rakenduse koguma dumpe rikke korral. See on kasulik, kui tahad teada rikke põhjust. Näiteks dump'ide püüdmine erindi korral aitab tuvastada probleeme, kontrollides rakenduse olekut, kui see ebaõnnestub.
Järgmine tabel näitab keskkonnamuutujaid, mida saate kasutada oma rakenduse seadistamiseks koguma dumpe rikke korral.
Keskkonnamuutuja | Illustreerida | Vaikimisi | | COMPlus_DbgEnableMiniDump või DOTNET_DbgEnableMiniDump | Kui seade on 1, luba tuuma dump'i genereerimine. | 0 | | COMPlus_DbgMiniDumpType või DOTNET_DbgMiniDumpType | Selline prügimägi, mida koguda. Vaata allolevat tabelit üksikasjade jaoks | 2 (MiniDumpWithPrivateReadWriteMemory) | | COMPlus_DbgMiniDumpName või DOTNET_DbgMiniDumpName | Kirjuta failitee prügikasti. Veendu, et dotnet-protsessi käivitaval kasutajal oleks kirjutamisõigus määratud kataloogile. | /tmp/coredump.<pid> | | COMPlus_CreateDumpDiagnostics või DOTNET_CreateDumpDiagnostics | Kui seade on 1, luba diagnostika logimine dump-protsessi jaoks. | 0 | | COMPlus_EnableCrashReport või DOTNET_EnableCrashReport | (Vajab .NET 6 või uuemat) Kui käivitamine on seatud väärtusele 1, genereerib käitusaeg JSON-formaadis tõrkearuande, mis sisaldab teavet vigase rakenduse lõimede ja virnaraamide kohta. Krahhiaruande nimi on .crashreport.json juurde lisatud dump-tee/nimi. | | | COMPlus_CreateDumpVerboseDiagnostics või DOTNET_CreateDumpVerboseDiagnostics | (Vajab .NET 7 või uuemat) Kui seade on 1, luba üksikasjalik diagnostika logimine dump-protsessi jaoks. | 0 | | COMPlus_CreateDumpLogToFile või DOTNET_CreateDumpLogToFile | (.NET 7 või uuem vajalik) Diagnostikasõnumi failitee tuleks kirjutada. Kui seda pole seadistatud, kirjutatakse vigase rakenduse konsoolile diagnostikateade. | |
Nende keskkonnamuutujate puhul standardiseerib .NET 7 eesliite DOTNET_ COMPlus_ asemel. Kuid COMPlus_ prefiks töötab endiselt korralikult. Kui sa oledVarasemates .NET runtime'i versioonides pidid keskkonnamuutujad kasutama endiselt COMPlus_ eesliitet。
Loo uus .NET Core 6 rakendustest
Kasuta VS 2022, et testida uut .NET Core 6 rakendustesti järgmise koodiga:
Käivita programm käsuga cmd, nagu alloleval pildil näidatud:
COMPlus_EnableCrashReport=1 COMPlus_DbgEnableMiniDump=1 COMPlus_DbgMiniDumpName="C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp" COMPlus_CreateDumpDiagnostics=1 Lahendamata erand. Süsteem.Erand: itsvse.com Programmis. <Main>$(String[] args) C:\Users\itsvse_pc\source\repos\WindowsFormsApp1\DumpDemo\Program.cs:real 9 [createdump] Kirjutan minidumpi kuhjaga faili C:\Users\itsvse_pc\AppData\Local\Temp\NET\test.dmp [createdump] Dump edukalt kirjutatud
Näete, et pärast programmi ebanormaalset krahhi on see edukalt määratud kataloogisDump .dmp fail genereeritakseKuidas seda analüüsida, siis see on teine teema.
Windows Platformi universaalsed seaded
Windowsis saab Windowsi vearaportit (WER) seadistada nii, et see genereeriks dumpe, kui rakendus kokku jookseb.
See meetod töötab kõigi programmide puhul, mitte ainult . .NET programmid, nagu C++, Go jne; Ja ja. NET. NET Core versioon
- Avatud regedit.exe
- Ava kataloog HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
- Loo KEY dumpFolder tüübiga REG_EXPAND_SZ, et seadistada kausta, kus dump-failid asuvad
- Samuti saab luua KEY DumpCounti tüübiga REG_DWORD seadistada dumpide koguarvu
Loomulikult saab neid seadistada ka PowerShelli käskude abil:
Ülaltoodud konfiguratsiooni kohaselt, kui programm väljub ebanormaalselt, loob ta programmidumpi kaustas %LOCALAPPDATA%\CrashDumps.
Ressursse:
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
|