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 工具的功能來建立實用的程式。 請參閱下方的一節。資源
-
Log Parser 2.2 的新增功能
HTTP://www.microsoft.com/technet/scriptcenter/tools/logparser/lpfeatures.mspx
-
Log Parser 2.2 的運作方式
-
Microsoft Log Parser Toolkit – 記錄剖析器上的書!
HTTP://www.microsoft.com/technet/scriptcenter/tools/logparser/default.mspx
我想要討論更多記錄剖析器工具的案例,而且我在我的部落格中為 [記錄剖析器] 工具建立了新的章節。 如果您有任何您要共用的案例或記錄剖析器工具查詢的建議,請在 rahulso@microsoft.com寄郵件給我,我最早會在下列網站張貼:
HTTPs://learn.microsoft.com/archive/blogs/rahulso/
一如往常,您可以使用 [要求] 表單,就您想要在未來的欄或知識庫中解決的主題提交想法。
本文討論的協力廠商產品是由與 Microsoft 無關的公司製造。 Microsoft 不以默示或其他方式提供任何關於這些產品的效能或可靠性保證。