Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 27663|Válasz: 0

[Forrás] .net/c# log4net hibakivétel nem rögzíti a sorszám okát

[Linket másol]
Közzétéve 2017. 08. 03. 14:13:01 | | | |
Nemrégiben egy projektet telepítettek egy gyártási környezetben, és kiderült, hogy egyes módszerek rendelő üzeneteket bocsátanak ki

Azonban csak rendellenes hibainformációt adnak meg, nincs rendellenes sorszám, csak az, hogy probléma van a modellátalakítással egy adott módszernél

De hadd hasonlítsam össze őket egyenként, túl idegesítő, miért ne írnánk fel rossz sorszámot?

A log4net naplókonfigurációja a következő:

C# Log4net naplókonfigurációja részletesen ismerteti
http://www.itsvse.com/thread-2892-1-1.html
(Forrás: Architect)

Szándékosan írtam egy kivétel üzenetet a Home/Index módszerben a helyi számítógépen, hogy megnézzem, rögzítik-e a sorszámot:



Azt tapasztaltam, hogy a hibanapló fájl rögzíti a sorszámot, ami biztosan nem probléma a log4net konfigurációval, mert mindkét oldalon ugyanaz a konfiguráció

Lehet, hogy a fordítási móddal van gond???

A helyi számítógépem hibakeresési módban van, és a hivatalos szerver által fordított DLL kiadási módban van

Ezután átváltottam a helyi projektet kiadás módra, és azt tapasztaltam, hogy még mindig egy lemezsorszám volt.

Aztán Baidu, az első mondat:Le kell másolnod a .pdb fájlt, amely a dll-hez tartozik

Nos, ez gond? Ezután közvetlenül a bin könyvtárba mentem, töröltem a dll-hez tartozó .pdb fájlt, majd frissítettem a weboldalt, és megtaláltam a következő kivételnaplót:



Valóban, a rendellenes sorszám nem kerül rögzítésre!!!!

Tényleg .pdb probléma ez!! Meg kell tartanod a .pdb fájlt, hogy a sorszám feljegyezve legyen, ha rendellenes!!



Mire való a PDB fájl?


PDB fájlok: Amit minden fejlesztőnek tudnia kell

Mi az a PDB fájl?

A legtöbb fejlesztőnek tudnia kell, hogy a PDB fájlokat a szoftveres hibakeresés segítésére használják. De pontosan hogyan működik, azt talán nem ismerjük. Ez a cikk a PDB fájlok tárolását és tartalmát írja le. Azt is leírja, hogyan találja meg a hibakereső a binay-hoz tartozó PDB fájlt, és hogyan találja meg a biny-hez tartozó forráskódfájlt. Ez a cikk minden natív és menedzselt fejlesztőnek szól.

Mielőtt elkezdenénk, definiáljunk két fogalmat: privát build, amely a fejlesztő saját gépén generált buildet jelöl; A nyilvános build, ami egy nyilvános gépen generált build buildet jelent. A magán építés viszonylag egyszerű, mert a PDB és a binay ugyanott van, és általában a nyilvános építéssel kapcsolatos problémák jelentkeznek.  

A legfontosabb, amit minden fejlesztőnek tudnia kell, hogy "a PDB fájlok ugyanolyan fontosak, mint a forráskód", amelyek nélkül még hibakeresést sem lehet elérni. Nyilvános építésnél a szimbólumszervernek tárolnia kell az összes PDB-t, és amikor a felhasználó hibát jelent, a hibakereső automatikusan megtalálja a megfelelő PDB fájlt binayben, és mind a Visual Studio, mind a Windbg tudja, hogyan lehet hozzáférni a szimbólumszerverhez. Mielőtt a PDB és a binay szimbólumszerverre tárolná, a PDB futtatását is forrásindexelni kell, ami a PDB és a forrás összekapcsolása.  

A következő rész feltételezi, hogy a Szimbólumszerver és a Forrásszerver Indexelés már be van állítva. TFS2010 egyszerűen elérhető a forrásindexeléssel és a szimbólumszerver másolásával egy új buildhez.

2. A PDB fájl tartalma

Hivatalosan is elindítva a PDB tartalmát, a PDB nem nyilvánosan elérhető fájlformátum, de a Microsoft API-t biztosít, amely segít adatokat szerezni a PDB-ről.

A natív C++ PDB a következő információkat tartalmazza:
* nyilvános, privát és statikus funkciós címek;
* A globális változó neve és címe;
* Paraméter- és helyi változónevek és eloszlatások a veremen;
* osztály, struktúra és adatok típusmeghatározása;
* Frame Pointer kihagyási adatok a natív stack áthaladásához x86-on;
* A forráskód fájl neve és sorszáma;

A .NET PDB csak két információs részt tartalmaz:
* Forráskódfájl neve és sorszám;
* és a helyi változó neve;
* Minden egyéb adat már szerepel a . NET metaadat;  





Előző:A lemez offline az adminisztrátor által kiállított szabályzat miatt
Következő:Keress egy weboldal-technikust, hogy együtt indítsanak vállalkozást
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com