从.NET中的webservice转储返回的数据

时间:2010-01-23 19:40:42

标签: c# debugging web-services

我在C#中有一个Web服务客户端,我在其中获取webservice返回的对象并将其传递给以下方法以创建xml文件:

XmlSerializer s = new XmlSerializer(typeof(T));
TextWriter sw = new StreamWriter(filename);
s.Serialize(sw, obj);
sw.Close();

但是,有些字段是Web服务端声称发送的,而生成的xml不包含这些字段(IU已在VS中完成'更新服务')。 有没有办法获取webclient在较低级别接收的数据转储?

4 个答案:

答案 0 :(得分:3)

两个非常好的选择:

  • Wireshark - 一个网络追踪器,基本上是
  • Fiddler - 一个记录请求和响应的代理,并且很好地显示内容

Wireshark比Fiddler侵入性更小,因为它不会改变客户端所做的任何事情,但只要你能说服你的客户接受它的证书(它实际上是一个中间人),Fiddler就支持HTTPS。就议定书而言,这是一种攻击 - 但是Fiddler就是中间人。)

此外,我非常确定你可以在.NET中添加SOAP过滤器等来记录进出的内容 - 但Wireshark和Fiddler的好处在于它们与你的进程是分开的,所以你可以绝对肯定结果没有被代码或配置中的任何内容弄乱。

答案 1 :(得分:1)

您还可以使用Http Analyzer来捕获HTTP传输。

答案 2 :(得分:0)

如果您正在使用HTTP传输,则可以使用Fiddler来获取转储。

答案 3 :(得分:0)

如果您正在使用Visual Studio并且项目中有Web引用,则可以选择显示所有文件,然后您将看到所有代理类和数据源,这可以为您提供相当多的提示,以查看结构数据有。

要查看数据本身,最好使用一些嗅探机制,我最喜欢的是Firefox中的Firebug插件,如果您直接调用该服务或者可能是一些通用的HTTP嗅探器。

相关问题