2011-07-05 73 views
2

使用Fiddler我想跟蹤對ASP.NET MVC操作方法的主體中所做的外部web服務的調用。使用Fiddler跟蹤ASP.NET MVC操作方法中的第三方webservice調用

當我將此代碼作爲控制檯應用程序或Nunit測試運行時,可以使用Fiddler查看對外部服務器的請求/響應;

[Test] 
public void TestWebservice() 
{ 
    MyWebService checker = new MyWebService(); 
    i = checker.GetAge("bob"); 
    Assert.True(i >= 0); 
} 

當我調用該web服務從ASP.MVC動作方法也看不出到外部服務器中的底層請求,雖然我可以看到請求以從瀏覽器中的操作方法;

public ActionResult MakeTheCall(string name) 
{ 
    MyWebService checker = new MyWebService(); 
    i = checker.GetAge(name); 
    return View(); 
} 

有沒有一種方法讓Fiddler向在ASP.NET MVC動作方法的主體中做出的第三方webservice顯示請求/響應?

+0

第三方web服務是否託管在本地主機或遠程主機上? – sandyiit

+0

有一個問題,如果網絡在測試Web服務時無法響應,您是否期望測試單元測試失敗?如果僅僅是一個網絡問題,並且你的單元測試開始失敗,會發生什麼?那是你的意圖嗎? –

+0

@sandyiit - 第三方web服務位於遠程主機上。 @JamieDixon是的,如果網絡關閉,測試將失敗。不要擔心這個 - 這段代碼只是爲了說明以另一種方式調用web服務,我同樣可以把它作爲一個控制檯應用程序。 –

回答

2

從評論移動的答案,回答部分:

你可以嘗試設置菲德勒作爲代理,當你調用Web服務如何設置

細節使用提琴手代理它在http://fiddler2.com/fiddler/help/hookup.asp

+1

GlobalProxySelection.Select = new WebProxy(「127.0.0.1」,8888);添加到ASP.NET MVC Web應用程序中的Application_Start方法工作 –

+1

GlobalProxySelection現已棄用 - 使用WebRequest.DefaultWebProxy = new WebProxy(「127.0.0.1」,8888);'而不是 – phuzi

0

我喜歡phuzis回覆 WebRequest.DefaultWebProxy = new WebProxy(「127.0.0.1」,8888);