4

在使用 .net 3.5 的 Visual Studio 2008 中,我使用了一个自动生成 Reference.cs 的 WSDL。这是通过右键单击我的项目中的引用并选择“添加 Web 引用”来完成的

使用它我可以发布到 Web 服务并通过我的 ref 和 out 对象获得有效的响应。postValues() 是一个 void 方法。

webService.postValues(ref value1, ref value2, out value3);

使用 WireShark,我可以在我的网络上看到请求和完整的肥皂响应。

我想弄清楚的是如何在我的代码中捕获这个原始 SOAP 响应。我想将其捕获以用于记录目的,并且不希望单独序列化每个 ref 对象。

在不修改自动生成的 Reference.cs 的情况下,我无论如何都无法做到这一点,而这 id 而不是这样做。任何帮助,将不胜感激。

编辑:似乎没有办法做到这一点,我可以看到。其他人可以确认或否认这一点吗?

编辑。我再碰一次,看看有没有人知道。

4

1 回答 1

2

您有以下选择:

  1. 在配置中为您的 Web 服务启用跟踪,并将所有信息转储到文件中。如果您使用的是 WCF 而不是旧版 Web 服务,请参阅有关如何为 WCF 启用跟踪的问题。
  2. 实现您自己的 SoapExtension并插入消息处理管道以拦截和转储传入/传出的肥皂消息。我认为链接文章中的示例包含 TraceExtension,它正是这样做的。
  3. 按照您的指定修改生成的 Reference.cs 并转储传递的对象。
于 2013-04-25T20:01:48.993 回答