【问题标题】:Dump of returned data from webservice in .NET从 .NET 中的 Web 服务转储返回的数据
【发布时间】:2010-01-23 19:40:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# debugging web-services


    【解决方案1】:

    两个非常好的选择:

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

    Wireshark 的侵入性低于 Fiddler,因为它不会改变客户端所做的任何事情,但 Fiddler 支持 HTTPS,只要您可以说服您的客户端接受其证书(它实际上是一个中间人就协议而言进行攻击 - 但 Fiddler 是中间人)。

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        如果您使用的是 HTTP 传输,您可以使用 Fiddler 获取该转储。

        【讨论】:

          【解决方案4】:

          如果您使用 Visual Studio 并且您的项目中有 Web 参考,您可以选择显示所有文件,在那里您将看到所有代理类和数据源,这可以为您提供相当多的提示,以了解哪种类型数据的结构。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-02-11
            • 1970-01-01
            • 2011-03-01
            • 1970-01-01
            • 2010-10-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多