c# - 从 WCF 创建客户端查看 SOAP XML

标签 c# wcf web-services soap

我已经按照以下说明使用 SVCUTIL.exe 创建了一个 WCF 客户端:http://msdn.microsoft.com/en-us/library/ms733133.aspx

它创建一个 app.config 和一个 soapproxy.cs 文件以供使用。

我想不出任何方法来获取用于调试目的的原始 XML。

Google 有很多向 web.config 文件添加跟踪扩展的示例,但是我没有 web.config 文件...我找到的示例是针对 web.service 而不是 System.ServiceModel;

我需要访问 XML soap 调用以便调试它吗?

更新: 我正在尝试编辑配置跟踪以查看 SOAP XML。

我已将其添加到 app.config 文件中

<configuration>
    <system.diagnostics>
        <sources>
            <source name="System.ServiceModel" 
                    switchValue="Information, ActivityTracing"
                    propagateActivity="true">
                <listeners>
                    <add name="xml" />
                </listeners>
            </source>
            <source name="CardSpace">
                <listeners>
                    <add name="xml" />
                </listeners>
            </source>
            <source name="System.IO.Log">
                <listeners>
                    <add name="xml" />
                </listeners>
            </source>
            <source name="System.Runtime.Serialization">
                <listeners>
                    <add name="xml" />
                </listeners>
            </source>
            <source name="System.IdentityModel">
                <listeners>
                    <add name="xml" />
                </listeners>
            </source>
     </sources>

        <sharedListeners>
            <add name="xml"
                 type="System.Diagnostics.XmlWriterTraceListener"
                 initializeData="c:\log\Traces.svclog" />
       </sharedListeners>
    </system.diagnostics>
    </configuration>

但是出现的跟踪日志似乎不包含原始 XML

最佳答案

为了快速调试,我使用 WCF 测试客户端。它非常简单,可以与 WCF 和 ASMX 服务一起使用。我还用它来使用用 Java 编写的第三方应用程序的服务(使用 wsdl 定义)。

开始 -> Visual Studio 2010 命令提示符 -> wcftestclient.exe

开始 -> Visual Studio 2008 命令提示符 -> wcftestclient.exe

这里的信息:http://msdn.microsoft.com/en-us/library/bb552364.aspx

这具有查看 XML/SOAP 请求和响应的能力。

我还使用 XMLTraceListener。这会在我的应用程序路径中为我生成跟踪,并且我能够查看整个请求/响应正文。

这是我的 web.Config 部分

<system.diagnostics>
    <sources>
        <source name="System.ServiceModel" switchValue="All">
            <listeners>
                <add name="xmlTraceListener" />
            </listeners>
        </source>
        <source name="System.ServiceModel.MessageLogging" switchValue="All">
            <listeners>
                <add name="xmlTraceListener" />
            </listeners>
        </source>
    </sources>
    <sharedListeners>
        <add name="xmlTraceListener" type="System.Diagnostics.XmlWriterTraceListener" initializeData="ApplicationTrace.svclog" />
    </sharedListeners>
    <trace autoflush="true" />
</system.diagnostics>

关于c# - 从 WCF 创建客户端查看 SOAP XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8317771/

相关文章:

.net - RESTful WCF 服务在 POST 操作中返回 "endpoint not found"错误

java - 删除 WS 请求中的 XML 声明

c# - 运行 JavaScript setInterval 的网站在 ~1 天后开始失败

java - WSDServiceFactory 中的空指针异常 - Apache CXF 库

c# - UPS API - LabelLinksIndicator - 未设置对象实例的对象引用

c# - 在 ASP.NET Ajax 页面上执行另一个任务之前检查挂起的更改

c# - ContentDialog showAsync() 给出错误 : no definition for getAwaiter

c# - BigCommerce OAUTH 不发送原始临时代码

C# Lambda 到 VB.Net

.net - 如何根据上传的文件大小估计 maxReceivedMessageSize