ASP.NET 支援語音欄

Log Parser 2.2 和 ASP.NET

為了根據您的需求自訂此欄,我們想要邀請您提交您對感興趣主題的想法,以及您希望在未來知識庫文章和支援語音欄中解決的問題。 您可以使用 [要求] 表單提交您的想法和意見反應。 此欄底部也有表單的連結。

歡迎使用 ASP.NET 支援語音欄。 我的名字是 Ahul Soni,我在 Microsoft 工作了大約兩年。 在本月的欄中,我會討論 Log Parser 2.2 的一些相關事實。 進入特定案例之前,讓我花一點時間描述 [記錄剖析] 工具。

關於

Log Parser 是功能強大且多功能的工具,可提供對文字型資料的通用查詢存取,例如記錄檔、XML 檔案和 CSV 檔案,以及 Microsoft Windows 作業系統上的重要資料來源,例如事件記錄檔、登錄、檔案系統和 Active Directory 目錄服務。 請 按一下這裡下載工具。 在這個版本中,您可以非常輕鬆地從 [記錄剖析器] 工具剖析下列檔案:

IISW3C、NCSA、IIS、IISODBC、BIN、IISMSID、HTTPERR、URLSCAN、CSV、TSV、W3C、XML、EVT、ETW、NETMON、REG、ADS、TEXTLINE、TEXTWORD、FS 和 COM。我同意命令列介面不是很直覺,而且您一安裝並執行工具,就會立即找到它。 但工具缺乏直覺的感覺,卻是被工具所提供的檔修補。 我要在這裡提供一些建議:不要讓命令列介面這麼快就關閉。 這項工具是極客工具組中必須具備的工具,對您很有説明,特別是當您想要從效能觀點進行疑難排解時。我不打算討論「如何」使用 [記錄剖析器] 工具,因為檔相當好,而且安裝資料夾也包含一個包含相當少數樣本的 [範例\查詢] 資料夾。因此,完成對記錄剖析器工具的推廣之後,讓我回到之前所說的案例。

案例 1:剖析特定文字的大型文字檔

問題的小型背景

您的客戶在執行某些動作時遇到「拒絕存取」問題。 您建議客戶使用另一個名為 Filemon的絕妙工具,並重現問題。 如果是資源 ACL 的問題,Filemon 工具就會發現錯誤。 現在,您要求客戶傳送已儲存的 Filemon 記錄檔給您。 以下是令人遺憾的部分。 您會收到檔案 (例如 Filemon.log) ,但發現檔案大小龐大 (Filemon 確實記錄大量資料!) 。 記事本看起來會停止回應,且在記錄檔中尋找「拒絕存取」行會很過慢。 Microsoft Office Excel 將拒絕完全開啟檔案。 現在怎麼辦? 答案:開啟 [記錄剖析器] 命令視窗,並使用下列命令:

LOGPARSER「Select Text from C:\Filemon.log where Text like '%Access Denied%'」 -i:TEXTLINE -q:Off We is telling the Log Parser tool is parser is parse through each line (Text) from the given file (C:\Filemon.log) where the line contains 'Access Denied'. -i:TEXTLINE 命令列參數會指定輸入格式,而 -q:Off 命令列參數則是詳細資訊 (-q[:ON|關閉]:安靜模式;) 。 如果您開啟 -q 命令列開關,下方輸出中顯示的統計資料和功能變數名稱 (文字) 將不會出現。

範例輸出

文字 7447 下午 1:49:24 explorer.exe:1200 目錄 C:\Access Denied StatisticsElements 已處理:640444 元素輸出:1 執行時間:12.75 秒 如果查詢傳回的記錄數大於 10,如何避免多次按 ENTER? 答案:在查詢中使用 -rtp:-1 參數! 如果您想要將輸出重新導向至檔案,這將會是必要的參數。 此外,當您寫入 STDOUT 時,輸出記錄會分批顯示,由等於此參數指定值的數列組成。 顯示一批資料列後,系統會提示使用者按下按鍵以顯示下一批列。 為此參數指定 「-1」 會完全停用批次!

使用查詢檔案

另一種以更清潔的方式達成相同結果的方法是建立查詢檔案。 如此一來,您可以輕鬆地調整查詢檔案,並從 [記錄剖析器] 工具的命令列執行查詢檔案。 除此之外,您也可以根據您的喜好輕鬆建立 GUI。 GUI 會載入已儲存的 SQL 查詢,並使用 [記錄剖析器] 工具執行查詢。如果您想要達到與 SQL 查詢之案例 1) 相同的效果 (,您可以提供下列命令:

LOGPARSER -i:TEXTLINE file:C:\LPQ\SearchAnyTextfile.sql -q:offC:\LPQ\SearchAnyTextFile.sql 包含下列資訊: 注意 在 C:\ 中建立資料夾 LPQ資料夾,以使用此欄中顯示的範例。

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

如果您發現查詢現在看起來更乾淨,而且比較有意義。 如此一來,您也可以建立更複雜且較大的查詢,而且所有專案都會因您使用而符合您的命令列。SQL 檔案,而不是整個查詢。 還是無法在命令列上容納超過 260 個字元! 為了保持使用查詢檔案的優點,我會在下列案例中使用此方法。 我已將我所有的查詢儲存在 C:\LPQ 中並具有 .sql 擴充功能 (您可以使用自己的) 。

案例 2:從特定資料夾尋找 10 個最大的檔案,包括其子資料夾

問題的小型背景

您有一個資料夾,其中有相當多的子資料夾和檔案。 您想要找出該資料夾中前 10 大的檔案,包括其子資料夾。我知道,對於特定資料夾,您可以直接變更 [檢視] 功能表上的檢視 (、單擊 [Windows 檔案總管] 中的 [詳細資料]) ,然後依大小排序檢視。 但這裡的問題在於,您也需要為子資料夾的內容負責。答案:開啟 [記錄剖析器] 工具命令視窗,並使用下列命令:

LOGPARSER -i:FS 檔案:C:\LPQ\Top10Files.sql -q:off -Recurse:-1Top10Files.sql 包含下列專案:

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

這裡 -i:FS 表示我們正在查詢檔案系統。 您可以在檔中檢視完整的 FS 輸入格式欄位清單,並據此為查詢設定框架。-Recurse:-1 表示我們想要包含所有子資料夾。 如果您不想要所有的子資料夾或想要限制遞迴,請使用 0、1、2 等。數位表示剖析器會深入分析。 0 表示無遞迴,2 表示剖析器會在深度 2 之前重複發生,依此類推。

範例輸出

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-------

StatisticsElements 已處理:1000 元素輸出:10 執行時間:0.42 秒

案例 3:在您的網站中尋找最慢的 20 個頁面

問題的小型背景

您使用的是 Microsoft Internet Information Services (IIS) 6、有幾個 ASP.NET 網站,而且對效能不滿意。 您想要調整伺服器,並瞭解最常從網頁伺服器送出服務所需的前 20 個頁面。 這並不會像您判斷最高時間記錄頁面一樣,加以修正,您的問題也已獲得解決。 很抱歉,沒有任何銀色專案符號可以解決效能問題。 至少應該要有一種方式可以開始。 正確? 答案:開啟 [記錄剖析器] 命令視窗,並使用下列命令:

LOGPARSER -i:IISW3C 檔案:C:\LPQ\Slowest20FilesInIIS.sql -o:DataGrid -q:offSlowest20FilesInIIS.sql 包含下列範例程式碼。

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

在這裡,-i:IISW3C 表示我們正在查詢 IIS W3C 記錄檔。 您可以在檔中檢視 IISW3C 輸入格式欄位的完整清單,並據此為查詢設定框架。-o:DataGrid 表示輸出應該以下列方式顯示在資料格線中: 注意:若要使用此查詢,您應該使用 IISW3C 記錄,而且必須啟用進階記錄屬性。 (開啟您的網站屬性,按一下 [網站] 引標籤,按一下以選取 [ 啟用記錄],然後將 [使用中記錄] 格式設定為 W3C 延伸記錄檔格式。 按一下[內容],按一下 [ 進階] 索引標籤,然後按一下以選取所有選項。)

案例 4:在您的網站中尋找 20 個最常用的 .aspx 頁面

問題的小型背景

您使用的是 IIS 6、有幾個 ASP.NET 網站,並且想要知道最常用的 .aspx 檔案,這樣一來,如果您調整這些頁面的效能,最終會獲得整個網站/伺服器的優點。 最好花一些時間來調整最常用的頁面,而不是花在謹慎使用的頁面上。 (雖然此規則可能有例外。 假設謹慎使用的頁面是一個非常錯誤的頁面,會造成該問題高 CPU 使用率!) 現在,如果您發現某個頁面需要很長的時間才能 (案例 3) ,而該頁面是最常使用的頁面之一,您應該一律確認該頁面在壓力之下運作正常。答案:開啟 [記錄剖析器] 工具命令視窗,並使用下列命令:

LOGPARSER -i:IISW3C 檔案:C:\LPQ\Popular20FilesInIIS.sql -chartType:Bar3D -groupSize:640x480 -view:onPopular20FilesInIIS.sql 包含下列範例程式碼。

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

在此情況下,-chartType:Bar3D 會告訴 Log Parser 工具要準備哪種圖表。 -groupSize 參數會指定目標影像以圖元表示的寬度和高度。 一組可用的圖表類型取決於本機電腦上安裝的 Microsoft Office Web 元件版本。輸出外觀如下: 如您所見,[記錄剖析器] 工具可能以多種方式在分析各種記錄檔中的資料時非常有説明。 這裡只有創意才是限制! 資料幾乎無限制地能為您反映更佳的圖片,而且您也可以採取動作。 我們所接觸到的只是冰山一角! 您也可以使用 Microsoft Visual C#、Microsoft Visual Basic .NET 等高階語言,使用 Log Parser 工具的功能來建立實用的程式。 請參閱下方的一節。

資源

我想要討論更多記錄剖析器工具的案例,而且我在我的部落格中為 [記錄剖析器] 工具建立了新的章節。 如果您有任何您要共用的案例或記錄剖析器工具查詢的建議,請在 rahulso@microsoft.com寄郵件給我,我最早會在下列網站張貼:

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

一如往常,您可以使用 [要求] 表單,就您想要在未來的欄或知識庫中解決的主題提交想法。本文討論的協力廠商產品是由與 Microsoft 無關的公司製造。 Microsoft 不以默示或其他方式提供任何關於這些產品的效能或可靠性保證。

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。