Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 27663|Antwort: 0

[Quelle] .net/c# Die log4net-Fehlerausnahme zeichnet die Ursache der Zeilennummer nicht auf.

[Link kopieren]
Veröffentlicht am 03.08.2017 14:13:01 | | | |
Kürzlich wurde ein Projekt in einer Produktionsumgebung bereitgestellt, bei dem festgestellt wurde, dass einige Methoden anomale Nachrichten auslösten

Es werden jedoch nur abnormale Fehlerinformationen angegeben, und es gibt keine abnormale Zeilennummer, sondern nur, dass es ein Problem mit der Modellumwandlung in einer bestimmten Methode gibt

Aber lass mich sie einzeln vergleichen, das ist zu nervig, warum nicht die falsche Leitungsnummer aufzeichnen?

Die log4net-Logkonfiguration ist wie folgt:

C# Die Log4net-Logkonfiguration wird ausführlich erklärt
http://www.itsvse.com/thread-2892-1-1.html
(Quelle: Architekt)

Ich habe absichtlich eine Ausnahmemeldung in der Home/Index-Methode auf meinem lokalen Computer geschrieben, um zu sehen, ob die Zeilennummer aufgezeichnet wird:



Ich habe festgestellt, dass die Fehlerprotokolldatei die Zeilennummer aufzeichnet, was definitiv kein Problem mit der log4net-Konfiguration ist, da die Konfiguration auf beiden Seiten gleich ist

Könnte es ein Problem mit dem Kompilierungsmodus sein???

Mein lokaler Computer ist im Debug-Modus, und die vom offiziellen Server kompilierte DLL ist im Release-Modus

Dann habe ich das lokale Projekt auf Release-Modus gestellt und festgestellt, dass es immer noch eine Datensatzzeilennummer war.

Dann, Baidu, der erste Satz:Du musst die .pdb-Datei kopieren, die zur DLL gehört

Nun, ist das ein Problem? Dann bin ich direkt ins bin-Verzeichnis gegangen, habe die .pdb-Datei gelöscht, die der DLL entspricht, die Website aktualisiert und das Ausnahmeprotokoll wie folgt gefunden:



Tatsächlich wird die abnormale Leitungsnummer nicht erfasst!!!!

Ist das wirklich ein .pdb-Problem!! Du musst die .pdb-Datei aufbewahren, damit die Leitungsnummer aufgezeichnet wird, falls sie abnormal ist!!



Wofür ist eine PDB-Datei da?


PDB-Dateien: Was jeder Entwickler wissen muss

Was ist eine PDB-Datei?

Die meisten Entwickler sollten wissen, dass PDB-Dateien zur Unterstützung des Software-Debuggings verwendet werden. Aber wie genau er funktioniert, kennen wir vielleicht nicht. Dieser Artikel beschreibt die Speicherung und den Inhalt von PDB-Dateien. Er beschreibt auch, wie der Debugger die PDB-Datei findet, die binay entspricht, und wie der Debugger die Quellcodedatei findet, die binay entspricht. Dieser Artikel richtet sich an alle Native- und Managed-Entwickler.

Bevor wir beginnen, definieren wir zwei Begriffe: privater Build, der verwendet wird, um einen Build zu bezeichnen, der auf der eigenen Maschine des Entwicklers generiert wurde; Öffentlicher Build, was bedeutet, dass ein Build auf einer öffentlichen Build-Maschine generiert wird. Der private Bau ist relativ einfach, weil PDB und Binay am selben Ort sind und die Probleme meist mit öffentlichem Bau zu tun haben.  

Das Wichtigste, was alle Entwickler wissen müssen, ist, dass "PDB-Dateien genauso wichtig sind wie Quellcode", ohne die man nicht einmal debuggen kann. Für einen öffentlichen Build muss der Symbolserver alle PDBs speichern, und wenn der Benutzer einen Fehler meldet, kann der Debugger automatisch die entsprechende PDB-Datei in binay finden, und sowohl Visual Studio als auch Windbg wissen, wie man auf den Symbolserver zugreift. Bevor du PDB und Binay auf den Symbolserver speicherst, musst du außerdem den PDB-Lauf als Quellindex indexieren, um PDB und Quellcode zu verknüpfen.  

Der nächste Teil setzt voraus, dass die Symbolserver- und Quellserver-Indexierung bereits eingerichtet sind. TFS2010 kann so einfach wie Quellcode-Indizierung und Symbolserver-Kopierung für einen neuen Build erfolgen.

2. Der Inhalt der PDB-Akte

Offiziell startet der Inhalt von PDB, PDB ist kein öffentlich zugängliches Dateiformat, aber Microsoft stellt eine API bereit, um Daten aus PDB zu erhalten.

Das native C++ PDB enthält folgende Informationen:
* öffentliche, private und statische Funktionsadressen;
* Name und Adresse der globalen Variablen;
* Parameter- und lokale Variablennamen sowie Offsets auf dem Stack;
* Typdefinitionen von Klasse, Struktur und Daten;
* Frame Pointer Auslassdaten zum Durchqueren des nativen Stacks auf x86;
* Name und Anzahl der Zeilen in der Quellcodedatei;

Das .NET PDB enthält nur zwei Informationsteile:
* Quellcode-Dateiname und Anzahl der Zeilen;
* und dem Namen der lokalen Variablen;
* Alle anderen Daten sind bereits in der enthalten. NET-Metadaten;  





Vorhergehend:Die Festplatte ist aufgrund der vom Administrator festgelegten Richtlinie offline
Nächster:Finden Sie einen Website-Techniker, um gemeinsam ein Unternehmen zu gründen
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com