我正在使用 .NET 2.0 网络服务。如果我添加对 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
当我尝试将其粘贴到我的监 window 口时,该值只显示 Default 一词,而不是发送的真实值。所以这就是为什么我需要查看 SOAP 并且到目前为止在该绑定(bind)对象中我没有看到持有它的属性。但它必须位于您在 .NET 中的 Web 服务中发出的任何请求中的某个位置,只是不知道在调试过程中要看哪里?
我的最终目标是能够在 SOAP 信封真正使用 VS 中的任何 WSDL 引用发送之前读取它。
最佳答案
没有非常简单的方法。请参阅 SoapExtension 中的示例MSDN 上的文档以获取记录信息的方法。
如果您使用的是 WCF,则只需在配置中打开日志记录即可。
关于c# - 从 Proxy 类方法调用中查看 SOAP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2179217/