Fiddler 不只用來給 Browser 除錯,也可用於 .NET 應用程式

應該很多人都用過 Fiddler 監控所有從 Browser 發出的 Http 呼叫,對於 AJAX 應用程式來說真是個極佳的除錯工具,但你可能不知道 Fiddler 也可以用來除錯從 .NET 發出的 Http Request,例如說 .NET 有提供 WebClient 類別HttpWebRequest 類別,都是用來發送 Http 呼叫的,我們在開發應用程式的時候可以透過 Fiddler 幫我們除錯!

你在用 Visual Studio 開發 ASP.NET 網站的時候是可以不用特別設定,直接開啟 Fiddler 即可擷取到所有由 .NET 發出的所有封包,這樣你就不用辛苦的一直「猜」.NET 到底發出了什麼封包出去了。 除了這個之外,還可以用來除錯由 .NET 發出的 Web Service 呼叫的內容,讓你更瞭解 SOAP 或其他 Web Service 呼叫的實際內容。

至於為什麼 Fiddler 抓的到 .NET 發出的封包呢?主因就是因為 .NET 使用系統預設的 Proxy 設定(就是你 IE 中的工具 -> 網際網路選項 -> 連線 -> 區域網路設定 -> Proxy 伺服器設定 ),所以才可以讓 Fiddler 抓到這些封包。

但在 IIS 7 中有些許改變了,IIS 7 讓 ASP.NET 預設不使用系統預設 Proxy 設定,所以你會抓不到封包,這時你可以加入 <system.net> 設定到 web.config 中(跟 <system.web> 同一層),如下:

<system.net>
  <defaultProxy>
    <proxy  proxyaddress="http://127.0.0.1:8888" />
  </defaultProxy>
</system.net>

P.S. 因為 Fiddler 預設的 Proxy 埠號(Port)就是 8888

 

  

此文章由 will 發表於 2008/3/26 上午 12:01:00

永久連結 | 評論 (2) | 此文章的RSSRSS comment feed |

分類: .Net | 介紹好用工具

標籤: , , , , ,

收藏:

相關文章

評論

三月 26. 2008 08:55

Ammon

請問如果是 asp 用的 XmlHttp 呢?

Ammon tw

三月 26. 2008 09:39

Will 保哥

應該是可以透過 Fiddler 抓到 Http 封包,原理都是一樣的!

如果你要透過 Proxy 發送 Http 封包必須要使用 ServerXMLHTTP 物件,並使用 proxycfg.exe 工具設定系統的 WinHTTP 預設的 Proxy 位址。

相關網址:

1. 您可能需要執行 Proxycfg 工具,ServerXMLHTTP 才能運作
http://support.microsoft.com/kb/289481

2. 如何藉由使用 ServerXMLHTTP 或 XMLHTTP 物件送出表單資料
http://support.microsoft.com/kb/290591

Will 保哥 tw

新增評論


(將顯示您的Gravatar圖示)  

  Country flag

[b][/b] - [i][/i] - [u][/u]- [quote][/quote]



線上預覽

八月 29. 2008 11:07