System.Diagnostics ServiceModel消息日志记录不适用于集成测试项目

时间:2013-12-23 08:50:17

标签: wcf system.diagnostics

我有一个集成测试项目,我在使用外部WCF服务的类上运行测试

MyApp.IntegrationTests中,我有一个app.config文件,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>

  </connectionStrings>
  <appSettings>

  </appSettings>
  <system.serviceModel>
    <bindings>
      -- ommitted for brevity
    </bindings>
    <client>
      <endpoint name="IWhatever"
                address="https://url.com/Whatever.svc"
                binding="basicHttpBinding"
                bindingConfiguration="basicHttpsBindingConfiguration"
                contract="IWhatever" />

    </client>
  </system.serviceModel>

  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel.MessageLogging">
        <listeners>
          <add initializeData="soap-log.xml" type="System.Diagnostics.XmlWriterTraceListener"
            name="messages" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>
</configuration>

如您所见,我正在尝试将来电记录到soap-log.xml

如果我运行测试,则不会创建任何日志文件。

让我感到困惑的是,如果我的实际网络应用程序项目中有system.diagnostics块,则会创建xml日志文件。

1 个答案:

答案 0 :(得分:1)

似乎你错过了messageLogging元素。 MSDN链接。

<system.serviceModel>
  <diagnostics>
    <messageLogging 
         logEntireMessage="true" 
         logMalformedMessages="true"
         logMessagesAtServiceLevel="true" 
         logMessagesAtTransportLevel="false"
         maxMessagesToLog="3000"
         maxSizeOfMessageToLog="20000"/>
  </diagnostics>
</system.serviceModel>