2010-02-01 54 views
1

我正在使用.NET 2.0 Web服務。如果我添加對WSDL的引用並進行代理類方法調用,VS中最簡單的方法是查看SOAP是否被髮送?查看來自代理類方法調用的SOAP請求

例子,我增加了貝寶WSDL的Web Service參考,並打了一個電話像這樣:

PayPalAPIAASoapBinding _client = new PayPalAPIAASoapBinding(); 
...rest of code and then 
    SetExpressCheckoutResponseType checkoutResponse = new SetExpressCheckoutResponseType(); 
    checkoutResponse = _client.SetExpressCheckout(request); // makes the call here 

我試着設置一個調試點第2行,但不知道如何潛水看SOAP。很明顯,我可以使用Fiddler之類的東西,但希望在調試過程中使用Intellisense來深入查看具有請求的對象。我會假設客戶端會擁有它,我的實例在上面但是找不到它。客戶是貝寶服務的一個實例。

我看到,當我深入到基類PayPalAPIAASoapBinding,有一個版本屬性,但我不能得到這個值:

System.Web.Services.Protocols.SoapProtocolVersion.Default

當我嘗試將其粘貼到我的觀察窗口中時,該值僅顯示單詞Default而不是發送的真實值。所以這就是爲什麼我需要查看SOAP,並且到目前爲止,在綁定對象中我沒有看到一個屬性。但是它必須在.NET中的任何Web服務請求中出現,只是在調試過程中不知道該在哪裏尋找?

我的最終目標是在使用VS中的任何WSDL引用真正發送它之前,能夠讀取SOAP信封。

回答

1

看到SOAP消息(不管編程語言),最簡單的方法是使用工具,如SoapUITCPmon它可以讓你進行攔截髮送和接收的消息。

這很容易(如果SOAP未加密)。雖然它不是 VS.

+0

如果你使用代理類,在VS中看到它絕非易事。謝謝。 – PositiveGuy 2010-02-02 02:50:04

2

沒有簡單的方法。請參閱MSDN上SoapExtension文檔中的示例,瞭解記錄信息的方法。

如果您使用的是WCF,則只需打開配置中的日誌記錄即可。

+0

謝謝。是的,如果只有我使用WCF。如果只有我的老闆沒有跛腳的理由不使用它。 – PositiveGuy 2010-02-02 02:50:44

1

最簡單的方法是使用Fiddler。你可以讓你的VS做Soap調用,並在Fiddler的原始視圖中看到流量。如果Soap調用是通過SSL進行的,則需要爲Fiddler追蹤這些步驟。

相關問題