我正在使用.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信封。
答案 0 :(得分:2)
没有非常简单的方法。有关记录信息的方法,请参阅MSDN上SoapExtension文档中的示例。
如果您使用的是WCF,则可以打开登录配置。
答案 1 :(得分:1)
答案 2 :(得分:1)
最简单的方法是使用Fiddler。您可以让VS进行Soap通话,并在Fiddler上查看原始视图中的流量。如果Soap调用是通过SSL进行的,那么Fiddler需要采取一些额外的步骤来跟踪它们。