Bei Microsoft anmelden
Melden Sie sich an, oder erstellen Sie ein Konto.
Hallo,
Wählen Sie ein anderes Konto aus.
Sie haben mehrere Konten.
Wählen Sie das Konto aus, mit dem Sie sich anmelden möchten.

ASP.NET Support Voice Column

Log Parser 2.2 und ASP.NET

Um diese Spalte an Ihre Anforderungen anzupassen, möchten wir Sie einladen, Ihre Ideen zu Themen, die Sie interessieren, und Problemen, die in zukünftigen Knowledge Base-Artikeln und Support Voice-Spalten behandelt werden sollen, zu übermitteln. Sie können Ihre Ideen und Ihr Feedback über das Formular Ask For It einreichen. Es gibt auch einen Link zum Formular unten in dieser Spalte.

Willkommen bei der ASP.NET Support Voice Column. Mein Name ist Rahul Soni, und ich bin jetzt seit etwa zwei Jahren bei Microsoft. In der Spalte dieses Monats werde ich einige der Fakten zu Log Parser 2.2 diskutieren. Bevor wir auf bestimmte Szenarien eingehen, lassen Sie mich einen Moment zeit nehmen, um das Protokollparsertool zu beschreiben.

Info

Log Parser ist ein sehr leistungsfähiges, vielseitiges Tool, das universellen Abfragezugriff auf textbasierte Daten wie Protokolldateien, XML-Dateien und CSV-Dateien sowie wichtige Datenquellen auf dem Microsoft Windows-Betriebssystem bietet, z. B. das Ereignisprotokoll, die Registrierung, das Dateisystem und den Active Directory-Verzeichnisdienst. Klicken Sie
hier, um das Tool herunterzuladen. In dieser Version können Sie die folgenden Dateien sehr einfach aus dem Protokollparser-Tool analysieren:

IISW3C, NCSA, IIS, IISODBC, BIN, IISMSID, HTTPERR, URLSCAN, CSV, TSV, W3C, XML, EVT, ETW, NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS und COM. Ich stimme zu, dass die Befehlszeilenschnittstelle nicht sehr intuitiv ist, und Sie werden es herausfinden, sobald Sie das Tool installieren und ausführen. Was dem Tool jedoch an intuitivem Gefühl fehlt, ist, dass es von der Dokumentation für das Tool gepatcht wird. Ich gebe hier einen kleinen Rat: Lassen Sie sich von der Befehlszeilenschnittstelle nicht so schnell abbringen. Dieses Tool ist ein Muss im Toolkit eines Geeks und hilft Ihnen sehr, insbesondere wenn Sie die Problembehandlung aus Leistungsperspektive durchführen möchten.

Ich werde nicht auf die Verwendung des Log Parser-Tools eingehen, da die Dokumentation recht gut ist und der Installationsordner auch einen Ordner "Samples\Queries" enthält, der einige Beispiele enthält.

Nachdem ich also mit der Heraufstufung des Log Parser-Tools fertig bin, lassen Sie mich auf die Szenarien zurückkommen, über die ich gesprochen habe.

Szenario 1: Analysieren großer Textdateien für einen bestimmten Text

Ein kleiner Hintergrund des Problems

Bei Ihrem Kunden tritt das Problem "Zugriff verweigert" auf, wenn er etwas getan hat. Sie empfehlen dem Kunden, ein weiteres brillantes Tool namens
Filemon zu verwenden und das Problem zu reproduzieren. Wenn es sich um ein Problem mit Ressourcen-ACLs handelt, kann das Filemon-Tool den Fehler abfangen. Nun bitten Sie den Kunden, Ihnen die gespeicherte Filemon-Protokolldatei zu senden. Hier kommt der unglückliche Teil. Sie erhalten die Datei (z. B. Filemon.log), stellen aber fest, dass die Größe riesig ist (Filemon protokolliert viele Daten!). Editor scheint zu hängen und ist schmerzhaft langsam, um die Zeilen "Zugriff verweigert" in der Protokolldatei zu finden. Microsoft Office Excel verweigert das vollständige Öffnen der Datei. Und was jetzt?

Antwort: Öffnen Sie das Protokollparser-Befehlsfenster, und verwenden Sie den folgenden Befehl:

LOGPARSER "Select Text from C:\Filemon.log where Text like '%Access Denied%'" -i:TEXTLINE -q:OffWhat wir dem Log Parser-Tool mitteilen, dass jede Zeile (Text) aus der angegebenen Datei (C:\Filemon.log) analysiert werden soll, in der die Zeile "Zugriff verweigert" enthält. Der Befehlszeilenschalter -i:TEXTLINE gibt das Eingabeformat an, und der Befehlszeilenschalter -q:Off weist ihn an, ausführlich zu sein (-q[:ON|OFF]:stiller Modus;). Wenn Sie den Befehlszeilenschalter -q aktivieren, fehlen die angezeigten Statistiken und der Feldname (Text) in der folgenden Ausgabe.

Beispielausgabe

Text7447 1:49:24 PM explorer.exe:1200 DIRECTORY C:\ Access Denied StatisticsElements processed: 640444
Elementausgabe: 1
Ausführungszeit: 12,75 Sekunden

Wie können Sie vermeiden, dass Sie die EINGABETASTE mehrmals drücken, wenn die Anzahl der von Ihrer Abfrage zurückgegebenen Datensätze größer als 10 ist?

Antwort: Verwenden Sie den Parameter -rtp:-1 in Ihren Abfragen!

Dies ist ein erforderlicher Parameter für den Fall, dass Sie die Ausgabe in eine Datei umleiten möchten. Wenn Sie in STDOUT schreiben, werden Ausgabedatensätze außerdem in Batches angezeigt, die aus einer Anzahl von Zeilen bestehen, die dem für diesen Parameter angegebenen Wert entsprechen. Sobald ein Batch von Zeilen angezeigt wurde, wird der Benutzer aufgefordert, eine Taste zu drücken, um den nächsten Batch von Zeilen anzuzeigen. Die Angabe von "-1" für diesen Parameter deaktiviert die Batchverarbeitung vollständig!

Verwenden von Abfragedateien

Eine weitere Möglichkeit, die gleichen Ergebnisse auf eine übersichtlichere Weise zu erzielen, besteht darin, eine Abfragedatei zu erstellen. Auf diese Weise können Sie Ihre Abfragedatei einfach optimieren und über die Befehlszeile des Log Parser-Tools ausführen. Abgesehen davon können Sie ganz einfach eine GUI nach Ihrem Geschmack erstellen. Die GUI lädt die gespeicherte SQL-Abfrage und führt die Abfrage mit dem Protokollparser-Tool aus.

Wenn Sie den gleichen Effekt (wie in Szenario 1) von SQL-Abfragen erzielen möchten, können Sie den folgenden Befehl bereitstellen:

LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql enthält die folgenden Informationen:

Hinweis Erstellen Sie einen Ordner LPQ in Ihrem C:\ ordner, um die in dieser Spalte gezeigten Beispiele zu verwenden.

Select Text as LineFromFile
FROM C:\Filemon.log 
WHERE Text 
LIKE '%Access Denied%'

Wenn Sie feststellen, sieht die Abfrage jetzt viel übersichtlicher aus und ist sinnvoller. Auf diese Weise können Sie auch komplexere und größere Abfragen erstellen, und alles passt in Ihre Befehlszeile, da Sie verwenden. SQL-Datei anstelle der gesamten Abfrage. Es ist sowieso nicht möglich, mehr als 260 Zeichen in die Befehlszeile zu passen!

Bei den Vorteilen der Verwendung von Abfragedateien verwende ich diese Methode in den folgenden Szenarien. Ich habe alle meine Abfragen in C:\LPQ mit einer SQL-Erweiterung gespeichert (Sie können Ihre eigene verwenden).

Szenario 2: Suchen der 10 größten Dateien aus einem bestimmten Ordner, einschließlich seiner Unterordner

Ein kleiner Hintergrund des Problems

Sie haben einen Ordner, und es gibt einige Unterordner und Dateien darin. Sie möchten die 10 größten Dateien in diesem Ordner ermitteln, einschließlich der Unterordner.

Ich weiß, für einen bestimmten Ordner können Sie einfach die Ansicht ändern (im Menü Ansicht klicken Sie auf Details) in Windows Explorer und die Ansicht nach Größe sortieren. Das Problem besteht jedoch darin, dass Sie auch den Inhalt des Unterordners berücksichtigen müssen.

Antwort: Öffnen Sie das Befehlsfenster des Log Parser-Tools, und verwenden Sie den folgenden Befehl:

LOGPARSER -i:FS file:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql enthält Folgendes:

SELECT TOP 10 
Path, 
Name, 
Size, 
Attributes 
FROM 'C:\Program Files\Microsoft Office\*.*' 
ORDER BY Size DESC

Hier bedeutet -i:FS, dass wir das Dateisystem abfragen. Sie können die vollständige Liste der Fs-Eingabeformatfelder in der Dokumentation anzeigen und Ihre Abfrage entsprechend umrahmen.

-Recurse:-1 impliziert, dass wir alle Unterordner einschließen möchten. Wenn Sie nicht alle Unterordner verwenden oder die Rekursion einschränken möchten, verwenden Sie 0, 1, 2 usw. Die Zahl impliziert die Tiefe, in die der Parser gehen wird. 0 bedeutet keine Rekursion, 2 bedeutet, dass der Parser bis tiefe 2 usw. wiederholt wird.

Beispielausgabe

Path                                                         Name         Size     Attributes 
------------------------------------------------------------ ------------ -------- ----------
C:\Program Files\Microsoft Office\Office10\WINWORD.EXE       WINWORD.EXE  10738448 -A--R----
C:\Program Files\Microsoft Office\Office10\EXCEL.EXE         EXCEL.EXE    9358096  -A--R----
C:\Program Files\Microsoft Office\Office10\OUTLLIB.DLL       OUTLLIB.DLL  6326984  -A-------
C:\Program Files\Microsoft Office\Office10\POWERPNT.EXE      POWERPNT.EXE 6093584  -A--R----
C:\Program Files\Microsoft Office\Office10\MSOWC.DLL         MSOWC.DLL    3041880  -A-------
C:\Program Files\Microsoft Office\Office10\CLIPPIT.ACS       CLIPPIT.ACS  2904417  -A-------
C:\Program Files\Microsoft Office\Office10\GRAPH.EXE         GRAPH.EXE    2144824  -A-------
C:\Program Files\Microsoft Office\Office10\1033\OUTLLIBR.DLL OUTLLIBR.DLL 1977032  -A-------
C:\Program Files\Microsoft Office\Office10\1033\XLMAIN10.CHM XLMAIN10.CHM 1646072  -A-------
C:\Program Files\Microsoft Office\Office10\MSOWCW.DLL        MSOWCW.DLL   1200177  -A-------


Verarbeitete StatisticsElements: 1000
Elementausgabe: 10
Ausführungszeit: 0,42 Sekunden

Szenario 3: Suchen der 20 langsamsten Seiten auf Ihrer Website

Ein kleiner Hintergrund des Problems

Sie verwenden Microsoft-Internetinformationsdienste (IIS) 6, haben einige ASP.NET Websites und sind mit der Leistung nicht wirklich zufrieden. Sie möchten den Server optimieren und die 20 wichtigsten Seiten kennen, die die höchste Zeit für die Bereitstellung über den Webserver benötigen. Es ist nicht so, dass Sie die Seiten mit der höchsten Zeit bestimmen, sie beheben und Ihre Probleme behoben werden. Leider gibt es keine Aufzählungszeichen, um Leistungsprobleme zu beheben. Zumindest sollte es eine Möglichkeit geben, zu beginnen. Richtig?

Antwort: Öffnen Sie das Protokollparser-Befehlsfenster, und verwenden Sie den folgenden Befehl:

LOGPARSER -i:IISW3C file:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql enthält den folgenden Beispielcode.

Select Top 20
LogRow as [Line Number],
date as [Date],
time as [Time],
c-ip as [Client-IP],
s-ip as [Server IP], 
s-port as [Server Port],
cs-method as [Request Verb],
cs-uri-stem as [Request URI],
sc-bytes as [Bytes sent],
sc-status as [Status],
sc-substatus as [Sub-status],
sc-win32-status as [Win 32 Status],
time-taken as [Time Taken]
From 
C:\ex060813.log
Order by time-taken desc

Hier bedeutet -i:IISW3C, dass wir die IIS W3C-Protokolle abfragen. Sie können die vollständige Liste der IISW3C-Eingabeformatfelder in der Dokumentation anzeigen und Ihre Abfrage entsprechend umrahmen.

-o:DataGrid impliziert, dass die Ausgabe in einem Datenraster wie folgt angezeigt werden soll:



Hinweis Um diese Abfrage verwenden zu können, sollten Sie die IISW3C-Protokollierung verwenden und über aktivierte Erweiterte Protokollierungseigenschaften verfügen. (Öffnen Sie die Eigenschaften Ihrer Website, klicken Sie auf die Registerkarte Website , klicken Sie auf Protokollierung aktivieren, und legen Sie dann das Aktive Protokollformat auf W3C Extended Log File Format fest. Klicken Sie auf Eigenschaften, klicken Sie auf die
RegisterkarteErweitert, und klicken Sie dann, um alle Optionen auszuwählen.)

Szenario 4: Suchen der 20 am häufigsten verwendeten ASPX-Seiten auf Ihrer Website

Ein kleiner Hintergrund des Problems

Sie verwenden IIS 6, verfügen über einige ASP.NET Websites und möchten die am häufigsten verwendeten ASPX-Dateien kennen, sodass, wenn Sie die Leistung dieser Seiten optimieren, letztendlich die gesamte Website bzw. der gesamte Server profitieren. Es ist immer besser, Zeit damit zu verbringen, die am häufigsten verwendeten Seiten zu optimieren, anstatt die Seiten, die sparsam verwendet werden. (Es kann jedoch Ausnahmen von dieser Regel geben. Angenommen, die sparsam verwendete Seite ist eine wirklich schlechte Seite, die eine hohe CPU-Auslastung verursacht!) Wenn Sie nun feststellen, dass die Bereitstellung einer bestimmten Seite sehr lange dauert (Szenario 3) und die Seite eine der am häufigsten verwendeten Seiten ist, sollten Sie immer bestätigen, dass sich die Seite unter Belastung gut verhält.

Antwort: Öffnen Sie das Befehlsfenster des Log Parser-Tools, und verwenden Sie den folgenden Befehl:

LOGPARSER -i:IISW3C file:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql enthält den folgenden Beispielcode.

Select Top 20
cs-uri-stem as [Request URI],
COUNT(*) AS Hits 
INTO MyChart.gif 
FROM C:\ex060813.log
Group by cs-uri-stem ORDER BY Hits DESC

In diesem Fall teilt -chartType:Bar3D dem Protokollparsertool mit, welche Art von Diagramm vorbereitet werden soll. Der Parameter -groupSize gibt die Breite und Höhe des Zielbilds in Pixel an. Der Satz der verfügbaren Diagrammtypen hängt von der Version der Microsoft Office Web Components ab, die auf dem lokalen Computer installiert ist.

So sieht die Ausgabe aus:



Wie Sie bereits gesehen haben, kann es mehrere Möglichkeiten geben, wie sich das Protokollparser-Tool bei der Analyse der Daten aus verschiedenen Protokollen als wirklich hilfreich erweisen könnte. Nur Kreativität ist hier die Grenze! Es gibt fast unbegrenzte Möglichkeiten, wie die Daten ein viel besseres Bild für Sie darstellen könnten, und sie könnten etwas sein, auf das Sie reagieren können. Was wir berührt haben, ist nur die Spitze des Eisbergs! Sie können auch allgemeine Sprachen wie Microsoft Visual C#, Microsoft Visual Basic .NET usw. verwenden, um nützliche Programme mit der Leistungsfähigkeit des Log Parser-Tools zu erstellen. Sehen Sie sich den Abschnitt "Ressourcen" weiter unten an.

Ressourcen

Ich möchte weitere Szenarien für das Log Parser-Tool besprechen, und ich habe einen neuen Abschnitt in meinem Blog nur für das Log Parser-Tool erstellt. Wenn Sie Vorschläge für Szenarien oder Log Parser-Toolabfragen haben, die Sie teilen möchten, senden Sie mir bitte eine E-Mail an
rahulso@microsoft.com, und ich würde sie so früh wie möglich auf der folgenden Website veröffentlichen:

https://learn.microsoft.com/archive/blogs/rahulso/

Wie immer können Sie Ideen zu Themen einreichen, die Sie in zukünftigen Spalten oder in der Wissensdatenbank behandeln möchten, indem Sie das Formular Fragen verwenden.

Die in diesem Artikel behandelten Drittanbieterprodukte werden von Unternehmen hergestellt, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Sprachqualität?
Was hat Ihre Erfahrung beeinflusst?
Wenn Sie auf "Absenden" klicken, wird Ihr Feedback zur Verbesserung von Produkten und Diensten von Microsoft verwendet. Ihr IT-Administrator kann diese Daten sammeln. Datenschutzbestimmungen.

Vielen Dank für Ihr Feedback!

×