【问题标题】:How to see SOAP Request and Response in WCF Tracing如何在 WCF 跟踪中查看 SOAP 请求和响应
【发布时间】:2018-12-09 12:31:38
【问题描述】:

我已启用 SwitchValue = All,以及 Activity 和 Information。

还启用了消息传递。

仍然没有运气,我无法看到肥皂请求和响应。在某些情况下,我确实看到了异常或消息。

我想查看肥皂请求的“所有输入”值。还有 SOAP 响应。我错过了什么?

【问题讨论】:

    标签: c# wcf soap trace


    【解决方案1】:

    reference

    这是我在网络配置中使用的:

    将此或其变体添加到 system.servicemodel 节点:

    <diagnostics wmiProviderEnabled="true">
      <messageLogging
           logEntireMessage="true"
           logMalformedMessages="true"
           logMessagesAtServiceLevel="true"
           logMessagesAtTransportLevel="true"
           maxSizeOfMessageToLog="102400000"
           maxMessagesToLog="10000" />
    </diagnostics>
    

    然后添加这个节点(你不必使用错误日志部分不需要):

    <system.diagnostics>
        <trace autoflush="true" />
        <sources>
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                </listeners>
            </source>
            <source propagateActivity="true" name="System.ServiceModel" switchValue="Warning">
                <listeners>
                    <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                        <filter type="" />
                    </add>
                    <add name="ServiceModelTraceListener">
                        <filter type="" />
                    </add>
                </listeners>
            </source>
            <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing">
                <listeners>
                    <add type="System.Diagnostics.DefaultTraceListener" name="Default">
                        <filter type="" />
                    </add>
                    <add name="ServiceModelMessageLoggingListener">
                        <filter type="" />
                    </add>
                </listeners>
            </source>
        </sources>
        <switches>
            <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
            <add initializeData="C:\logs\TraceLogs\Web_tracelog_messages.svclog"
                type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
                <filter type="" />
            </add>
            <add initializeData="C:\logs\TraceLogs\Web_tracelog_errors.svclog"
              type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
              name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
                <filter type="" />
            </add>
            <add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="something.web"/>
        </sharedListeners>
    </system.diagnostics>
    

    【讨论】:

      【解决方案2】:

      尝试将以下配置添加到 web.config。

          <system.diagnostics>
          <sources>
            <source name="System.ServiceModel.MessageLogging">
              <listeners>
                <add type="System.Diagnostics.XmlWriterTraceListener" name="xmlLog" initializeData="myLogs.svclog"/>
              </listeners>
            </source>
          </sources>
        </system.diagnostics>
        <system.serviceModel>
          <diagnostics>
            <messageLogging logEntireMessage="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="false" />
          </diagnostics>
        </system.serviceModel>
      

      如果问题仍然存在,请随时告诉我。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 1970-01-01
        • 2013-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多