从WCF创建客户端查看SOAP XML

问题描述 投票:1回答:1

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

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

我无法想出任何获取原始XML以进行调试的方法。

谷歌有很多例子在web.config文件中添加了traceextension,但是我没有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

c# wcf web-services soap
1个回答
4
投票

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

Start -> Visual Studio 2010 Command Prompt -> wcftestclient.exe

要么

Start -> Visual Studio 2008 Command Prompt -> 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>
© www.soinside.com 2019 - 2024. All rights reserved.