Hopes

          Start Here..

           

          學習筆記:asp.net中使用跟蹤(trace) ASP.NET故障排除


           

          學習筆記:asp.net中使用跟蹤(trace)

          學習筆記:asp.net中使用跟蹤(trace)

          主要內容:

          什么是“跟蹤”
          為什么要使用跟蹤?
          開啟頁面內的跟蹤
          開啟整個網站的跟蹤
          查看跟蹤信息
          開啟跟蹤后和asp.net ajax沖突怎么辦

          一、什么是“跟蹤”(來自于MSDN)
          跟蹤是一種在應用程序運行時監視其執行情況的方式。當開發 .NET 應用程序時,可以在其中添加跟蹤和調試檢測功能,并且在開發應用程序時和部署應用程序后,都可以使用該檢測功能。利用 Trace 和 Debug 類,可以將有關錯誤和應用程序執行的信息記錄到日志、文本文件或其他設備中,以便在隨后進行分析。

          二、為什么要使用跟蹤?
          在asp的時代,如果需要了解程序在運行時的某些狀態、變量的值,通常都是在頁面上采用Response.Write來輸出的方式。這么做的原因,絕大多數都是因為asp薄弱的運行、開發環境造成的。這這樣的做的結果是,隨意在頁面上輸出造成頁面的混亂不說,程序中添加的Response.Write還非常不容易管理,一旦有什么遺漏的話,就會給客戶造成不必要的誤解。
          而asp.net的跟蹤功能,不僅可以在程序運行的各個階段,跟蹤程序的狀態和變量的值,另外,它還有asp.net本身所支持的各項管理功能。它可以和Aspx頁面一起顯示,也可以通過專門的方式在另外的地方呈現。據我目前所知,它有以下優點:

          1、既可以整個網站統一管理,也可以在單個頁面啟動。通過配置web.config,可以啟用整個網站的跟蹤,也可以在頁面上采用。

          2、不影響頁面的布局和呈現。

          3、全面反映cookies和session的狀態,這是我第一次采用跟蹤的一個原因。

          4、完整的反應各個頁面事件的過程和執行的時間。

          三、開啟頁面內的跟蹤

          1、在<@page>中采用Trace="true"

          2、在代碼里添加“Trace.IsEnabled = true;”

          3、添加自己的跟蹤信息:
                      Trace.Warn("abc");   //Warn 顯示的是紅色的信息
                      Trace.Write("def");   //write顯示的是普通顏色的信息
          四、開啟全站的跟蹤

          在web.config中添加
          <system.web>
           <trace enabled="true" />
          </system.web>

          五、查看跟蹤信息

          1、如果開啟了頁面內的跟蹤,那么跟蹤信息可以直接在頁面內容的下面顯示出來。

          2、如果開啟了全站的跟蹤,可以通過“http://網站名/”或者“http://網站名/站點名/” (vs 2005里面新建的網站,在調試的時候就是以后者的形式出現的) 后面跟上“trace.axd”來查看。例如:http://localhost:5508/trace.axd

          3、開啟全站跟蹤并且顯示在頁面:

          <system.web>
           <trace enabled="true" pageOutput="true" />
          </system.web>


          4、開啟全站跟蹤并且顯示在“輸出”窗口:

          <system.web>
           <trace enabled="true" pageOutput="false" writeToDiagnosticsTrace="true"/>
          </system.web>

          <system.diagnostics>
           <trace>
            <listeners>
             <add name="consolse" type="System.Diagnostics.ConsoleTraceListener"/>
            </listeners>
           </trace>
          </system.diagnostics>


          六、開啟跟蹤后和asp.net ajax沖突怎么辦

          在使用UpdatePanel的頁面上開啟了頁面跟蹤或者開啟了全站跟蹤時,pageOutput="true"就會出現Sys.WebForms.PageRequestManagerParserErrorException異常。
          原因是頁面跟蹤時有Response.Write。
          解決辦法是,不用頁面跟蹤或者全站跟蹤時,pageOutput="false"。需要查看跟蹤信息時,用trace.axd。

           

          七、性能
          網站開啟了跟蹤,那么肯定是要低性能的。
          但是在頁面添加一些自定義的跟蹤信息,應該對性能的影響很微小了。


          附錄

          1、如何:使用跟蹤查看器查看 ASP.NET 跟蹤信息

          http://msdn.microsoft.com/zh-cn/vcsharp/wwh16c6c(VS.80).aspx

          2、《Essential ASP.NET 2.0中文版 》7.11  ASP.NET 2.0中的跟蹤

          http://book.csdn.net/bookfiles/392/10039214519.shtml

          3、UpdatePanel 出現了Sys.WebForms.PageRequestManagerParserErrorException異常

          Microsoft JScript 運行時錯誤: Sys.WebForms.PageRequestManagerParserErrorException: 無法分析從服務器收到的消息。之所以出現此錯誤,常見的原因是: 在通過調用 Response.Write() 修改響應時,將啟用響應篩選器、HttpModule 或服務器跟蹤。詳細信息: 分析附近的“XXX|XXX|XXX”時出錯。


          http://www.cnblogs.com/simplenl/archive/2008/08/12/1266120.html


          文章中提到了出現異常的各種原因,其中之一就是開啟了網頁的trace


          4、MSDN:《跟蹤應用程序和在應用程序中插入檢測點》《ASP.NET 跟蹤概述》

          ms-help://MS.MSDNQTR.v90.chs/dv_fxdebug/html/773b6fc4-9013-4322-b728-5dec7a72e743.htm

          ms-help://MS.MSDNQTR.v90.chs/dv_vwdcon/html/1552561d-887c-4002-8770-f92662cdf416.htm#ReadingTraceInformation

           

          流浪是注定的宿命;





















          ASP.NET故障排除
          • 沒有找到程序、沒有顯示ASP.NET的結果
          或瀏覽器試圖下載文件
          • 不能顯示頁面:HTTP錯誤403
          • 找不到頁面:HTTP錯誤404
          • 脫機時Web頁面無效
          • 得到服務器錯誤的錯誤語句
          • 其他問題

          沒有找到程序、沒有顯示ASP.NET的結果
          或瀏覽器試圖下載文件
          • 如果試圖將頁面作為硬盤上的本地文件來瀏覽,
          就會遇到這樣的問題。在Windows Explorer中單
          擊文件時也會遇到此問題。原因是用戶試圖不以
          通過Web服務器請求的方式訪問ASP.NET頁面。
          • 解決方法:需要在URL中引用Web服務器。
          • 如果在URL中引用也出現這個問題,一般情況下
          是ASP.NET的安裝問題,如重新安裝IIS后沒有再
          安裝ASP.NET。

          不能顯示頁面:HTTP錯誤403
          • 可能是用戶沒有權限來執行包含在
          ASP.NET中的代碼。
          • 解決方法:需要修改IIS的相關設置。

          找不到頁面:HTTP錯誤404
          • 可能是在瀏覽器中輸入了拼寫錯誤的URL。
          • 解決方法:輸入正確的URL。
          提示:
          • 也有可能是文件后綴名錯誤,如用NotePad
          寫的代碼,錯誤保存為*.aspx.txt。

          脫機時Web頁面無效
          • 可能是用戶試圖請求一個頁面,但當前沒
          有與Internet的連接。
          • 解決方法:單擊“連接”按鈕;或者調整瀏覽
          器的“脫機”設置。

          得到服務器錯誤的錯誤語句
          • 可能是ASP.NET代碼錯誤。
          • 解決方法:修改錯誤代碼。

          Web訪問失敗
          • IE選項中,選擇代理時,沒有把“對于本地
          地址不使用代理服務器”選中

          其他問題:
          • 可能是IIS安裝不正確。
          殺手锏:
          ASPNET_regiis

          • 應用程序級調試模式
          – Web.config
          – <compilation debug=“true”/>
          • 頁面調試模式
          – HTML頁面中添加以下代碼:
          <%@ Page Language=“c#” Debug=“true”
          %>
          – VS.NET中Document的Debug屬性設置為true

          • .NET框架自己帶的調試器
          • DbgCLR.exe
          • 位于:Program files\Mircosoft Visual
          Studio .NET\FrameWorkSDK\GuiDebug

          CLR調試器使用的4個步驟
          • 打開要調試的文件
          • 將調試器附加到ASP.NET進程中
          • 設置斷點
          • 使用調試器工具來操縱應用程序

          在遠程計算機上調試ASP.NET
          Web 應用程序
          • 調試器在遠程使用方法與在本地使用相同
          • 遠程調試的必需條件:
          – 必需安裝Visual Studio remote debugging 組件
          – 用戶必需是Debugger User 組或Administrator
          – 必需具有運行ASP.NET計算機的管理員權限
          – Use DCOM (not TCP/IP) for C/C++

          2.4 ASP.NET調試啟動故障
          • 無法在Web 服務器中啟動調試
          • 您沒有調試服務器的權限。
          • 發送調試HTTP 請求時發生服務器端錯誤
          • 沒有對項目進行配置以接受調試。
          • 未正確安裝調試器。
          • 服務器不支持對ASP.NET 或ATL 服務器應用程
          序的調試。
          • 訪問被拒絕。檢驗您是否是管理員或某個組成員。
          • 無法啟動ASP.NET 或ATL 服務器調試。
          • 訪問被拒絕。

           

          2.4 ASP.NET調試啟動故障
          無法在Web 服務器中啟動調試
          • 未將IIS 應用程序配置為使用“集成
          Windows身份驗證”。確保已選中“身份驗證
          方法”對話框中的“集成Windows身份驗證”
          復選框
          • 檢查IIS 的“保持HTTP連接” 選項。如果它
          是關閉的,則可能需要將其打開,再嘗試
          調試。

          2.4 ASP.NET調試啟動故障
          您沒有調試服務器的權限。
          • 原因1:確保已啟用Integrated Windows
          Authentication。可能的原因是僅為IIS 的
          Directory 安全啟用了Basic authentication。
          • 原因2:如果您在使用Integrated Windows
          Authentication,則需要確保您的用戶帳戶
          能夠完全控制IIS 的目錄。

          2.4 ASP.NET調試啟動故障
          發送調試HTTP 請求時發生服務器端錯誤
          • Web 應用程序沒有應用程序名。為此,請
          使用IIS MMC 來檢查Web 項目的屬性,
          確保Web 項目具有應用程序名。
          • 如果使用的是NTFS 文件格式,則確保
          “aspnet”具有“wwwroot”或虛擬目錄文件夾
          上的適當權限,才能訪問和寫入這些文件
          夾。

          2.4 ASP.NET調試啟動故障
          • 沒有對項目進行配置以接受調試。
          – 原因: 在項目屬性中未啟用Asp.net 調試
          • 未正確安裝調試器
          – 未正確安裝.NET Framework 應用程序。
          • 服務器不支持對ASP.NET 或ATL 服務器
          應用程序的調試。
          – IIS和VS.NET安裝順序有錯,用
          ASPNET_Regiis 重新注冊

          2.4 ASP.NET調試啟動故障
          訪問被拒絕。
          • 檢驗您是否是管理員或某個組成員。您可
          能不是該計算機上Debugger Users 組的成
          員。將您的用戶帳戶添加到計算機上的
          Debugger Users 組中即可解決此錯誤。
          • 您可能是Debugger Users 組的成員,但是
          您不具有調試aspnet 輔助進程的權限,因
          為您不是aspnet 用戶帳戶或
          Administrators 組的成員。將您的用戶帳戶
          添加到機器上的Administrators 組即可解決
          此問題。

          2.4 ASP.NET調試啟動故障
          無法啟動ASP.NET 或ATL 服務器調試。
          • 原因1:您可能安裝了IIS Lockdown 工具。如果
          這樣,則查找urlscan.ini 文件,并將DEBUG
          (區分大小寫)添加到[allowverbs] 部分中。
          • 原因2:如果將域控制器用作服務器,并且項目
          是使用機器名(非完整域名)創建的,則可能需
          要將項目的URL 更改為完整域名。
          • 原因3:如果將IIS 設置為使用專用IP(例如
          Web site identification,可以在IIS MMC 的IIS
          設置中找到這一選項),則可能看到這條錯誤消
          息。原因4:web.config 文件的中的值太大。默
          認單位是千字節而非字節,因此如果更改此數
          字,使用了錯誤的單位,則可能導致調試問題。

          試用Response跟蹤
          • 新建web應用程序
          • 添加用戶名稱、密碼文本框、登錄按鈕
          • 為登錄按鈕添加事件
          • 在事件中用Response.Write來跟蹤值是否
          正確

          跟蹤
          • 便利的來展示應用程序ASP.NET Web的信

          • 兩種方式跟蹤:
          – Page-level 跟蹤
          • 在瀏覽器中輸出
          • 不影響頁面性能
          – Application-level 跟蹤
          • 許可一次察看多個請求
          • 自動為程序中的所有頁開啟page-level

          2.1 在頁面級使用跟蹤
          • 在HTML頁添加以下代碼
          <%@ Page Trace=“true” %>
          • VS.NET中的設置
          – Document的Trace屬性設置為true

          跟蹤輸出
          • 請求內容:包含關于頁面請求的信息
          • 跟蹤信息:顯示實際的跟蹤信息
          • 控制樹:顯示頁面使用的不同控件
          • Cookies集合:顯示頁面中的所有
          Cookie
          • 標題集合:顯示客戶端傳送到服務器端
          的連同請求的各種HTTP標題
          • 服務器變量:顯示服務器變量集合的所
          有成員

          2.2 寫到跟蹤日志
          • Trace.Write:
          • Trace.Warn:紅色顯示
          注:
          • Trace對象對應的類為TraceContext
          • Trace.IsEnabled屬性可以得到跟蹤的當前
          狀態

          Application-Level 跟蹤日志
          • 為所有頁開啟page-level跟蹤
          • 收集統計狀態信息及控件層次
          • 開啟跟蹤需按以下方式修改Web.config文件:
          <configuration>
          <system.web>
          <trace enabled="true"/>
          </system.web>
          </configuration>
          • 輕松察看多個請求的響應細節

          支持的屬性
          設置true | false, 指示跟蹤是否僅對本地用戶或所有用戶
          (default is true)
          localOnly
          設置SortByTime | SortByCategory, 指示顯示排序方式
          (default is SortByTime)
          traceMode
          requestLimit 跟蹤請求在服務器端的存儲數量(default is 10)
          設置true | false, 用于標記跟蹤信息是否在頁面被顯示,包
          括在每個頁面直接輸出,或是通過trace.axd文件輸出。
          (默認為關閉)
          pageOutput
          enabled 設置true | false, 用于標記跟蹤是否開啟(默認為關閉)
          Value Description

            評論這張
          轉發至微博
          轉發至微博
          0  分享到:        
          閱讀(700)| 評論(1)| 轉載 (0) |舉報

          歷史上的今天

          相關文章

          最近讀者

          評論

            登錄后你可以發表評論,請先登錄。登錄>>
          2007-07-14 15:23

               你好 我是個網絡菜鳥 

               我現在有一個系統安全補丁裝不上

               提示是 :  SL44 tmp未找到調試器

                           注冊的JIT調試器不可用.試圖使用下列命令啟動JIT調試器產生了錯誤代碼0x2(2).請檢查計算機設置.

                             cordbg.exe.!a  0xdlc

          還有 我的系統是 XP的

           希望你可以幫我解決這個問題  謝謝

           

           

           

           

           

           

           

           

           

           

           

           

           
           
           
           
           
           
           
           
           
           
           
           
           
           
            

          posted on 2012-12-18 15:48 ** 閱讀(381) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          你好!

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          收藏夾

          C#學習

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大庆市| 贞丰县| 临潭县| 沁水县| 家居| 明溪县| 广南县| 泰宁县| 武宣县| 新河县| 宁城县| 西青区| 乌兰县| 且末县| 城固县| 吐鲁番市| 武安市| 台中县| 扶沟县| 桓台县| 三江| 常宁市| 溧阳市| 体育| 黄冈市| 曲沃县| 英山县| 巍山| 广饶县| 曲麻莱县| 星子县| 冕宁县| 望都县| 博兴县| 加查县| 台北县| 涞水县| 扎鲁特旗| 廉江市| 永德县| 思南县|