【问题标题】:Server-side tracing of SOAP messages for WCF serviceWCF 服务的 SOAP 消息的服务器端跟踪
【发布时间】:2011-01-21 03:55:39
【问题描述】:

我正在尝试关注 this tutorial 为我的 WCF 服务配置服务器端 SOAP 跟踪,以及 MSDN documentation

运行测试时,我在 Microsoft 服务跟踪查看器中看到 Activity 00000000,但消息选项卡为空。 C:\temp\Web_tracelog.svclog 正在写入,但 C:\temp\Web_messages.svclog 未写入。

我可能在这里遗漏了一些简单的东西,但我无法找到它。

Microsoft 服务配置编辑器的诊断选项卡显示一切正常。下面是 web.config 的相关部分。

<system.diagnostics>
  <sources>
   <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing"
    propagateActivity="true">
    <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="Verbose, ActivityTracing">
    <listeners>
     <add type="System.Diagnostics.DefaultTraceListener" name="Default">
      <filter type="" />
     </add>
     <add name="ServiceModelMessageLoggingListener">
      <filter type="" />
     </add>
    </listeners>
   </source>
  </sources>
  <sharedListeners>
   <add initializeData="C:\temp\Web_tracelog.svclog"
    type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
    <filter type="" />
   </add>
   <add initializeData="C:\temp\Web_messages.svclog"
    type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
    name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
    <filter type="" />
   </add>
  </sharedListeners>
  <trace autoflush="true" />
</system.diagnostics>

 <system.serviceModel>
  <diagnostics>
   <messageLogging logEntireMessage="true" logMalformedMessages="true"
    logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
  </diagnostics>
 </system.serviceModel>

【问题讨论】:

标签: wcf soap trace


【解决方案1】:

看不出该配置有什么问题,但这是我使用的配置,如果它有任何用处,它可以正常工作:

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
      <listeners>
        <add name="ServiceModelTraceListener"
         initializeData="c:\MyTracelog.svclog"
         type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
         traceOutputOptions="Timestamp"/>
      </listeners>
    </source>
  </sources>
  <trace autoflush="true" />
</system.diagnostics>

<system.serviceModel>
    <diagnostics>
      <messageLogging logEntireMessage="true" logMalformedMessages="true"
              logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
    </diagnostics>
</system.serviceModel>

【讨论】:

  • 当我使用这个配置时,我得到一个“AppDomain unloading”条目和一个“Get configuration section”条目。我期待看到我的 SOAP 消息的内容。您是否看到具有此配置的 SOAP 消息?
  • 我得到的结果与此处显示的结果类似:msdn.microsoft.com/en-us/library/aa751795.aspx
猜你喜欢
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 2010-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多