请参阅Proxy类方法调用的SOAP请求

时间:2010-02-01 18:51:37

标签: c# web-services

我正在使用.NET 2.0 Web服务。如果我添加对WSDL的引用并进行代理类方法调用,那么在VS中查看SOAP被发送的最简单方法是什么?

示例,我添加了PayPal WSDL Web服务参考并进行了调用:

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来深入查看有请求的对象。我会假设客户端会拥有它,我上面的实例却无法找到它。客户是PayPal服务的一个实例。

我确实看到当我深入到基类PayPalAPIAASoapBinding时,有一个版本属性,但我无法得到这个值:

System.Web.Services.Protocols.SoapProtocolVersion.Default

当我尝试将其粘贴到我的监视窗口时,该值只显示默认值而不是发送的真值。所以这就是为什么我需要查看SOAP,到目前为止,在该绑定对象中我没有看到持有它的属性。但它必须在你在.NET中的Web服务中提出的任何请求中的某个地方,只是不知道在调试期间在哪里看?

我的最终目标是能够在使用VS中的任何WSDL引用发送之前读取SOAP信封。

3 个答案:

答案 0 :(得分:2)

没有非常简单的方法。有关记录信息的方法,请参阅MSDN上SoapExtension文档中的示例。

如果您使用的是WCF,则可以打开登录配置。

答案 1 :(得分:1)

查看SOAP消息(无论编程语言如何)的最简单方法是使用SoapUITCPmon等工具来拦截发送和接收的消息。

这非常简单(如果SOAP未加密)。虽然它不是 in VS。

答案 2 :(得分:1)

最简单的方法是使用Fiddler。您可以让VS进行Soap通话,并在Fiddler上查看原始视图中的流量。如果Soap调用是通过SSL进行的,那么Fiddler需要采取一些额外的步骤来跟踪它们。