2014-04-07 54 views
0

我的app.config如下。但是,我没有在C:\ temp \ xxx \文件夹中。我错过了什么?这是我第一次尝试这个,所以我对此一无所知。代码中没有任何东西。我认为要做的事情是因为如果我将格式化的响应(换行符和制表符)的响应导致异常。我使用soapUI模拟服务来返回响应。如何让WCF WS客户端通过app.config跟踪记录请求和响应?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel" switchValue="Warning, 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="Warning, 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\xxx\App_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\xxx\App_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> 
</configuration> 

回答

0

我的WS客户端内置于WSClient.dll这是从MainProgram.exe使用所需的所有权限。在构建我的WSClient项目的App.config时,已将其转换为WSClient.dll.config。我认为这没问题。但是它必须复制到MainProgram.exe.config并且它可以工作。

0

您的配置看起来不错,请注意您必须在添加日志后重新启动服务。确保服务中提供了创建日志文件

这里是我的版本配置文件

<system.diagnostics> 
    <sources> 
     <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> 
     <source propagateActivity="true" name="System.ServiceModel" switchValue="Warning,ActivityTracing"> 
      <listeners> 
       <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
        <filter type="" /> 
       </add> 
       <add name="ServiceModelTraceListener"> 
        <filter type="" /> 
       </add> 
      </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="app_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
      name="ServiceModelMessageLoggingListener" traceOutputOptions="DateTime, Timestamp, ThreadId"> 
      <filter type="" /> 
     </add> 
     <add initializeData="app_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
      name="ServiceModelTraceListener" traceOutputOptions="DateTime, Timestamp"> 
      <filter type="" /> 
     </add> 
    </sharedListeners> 
    <trace autoflush="true" /> 
</system.diagnostics> 
<system.serviceModel> 
    <diagnostics wmiProviderEnabled="false"> 
     <messageLogging logMalformedMessages="true" logMessagesAtTransportLevel="true" /> 
    </diagnostics> 
    <services> 
     <service name="Nelibur.ServiceModel.Services.JsonServicePerCall"> 
      <host> 
       <baseAddresses> 
        <add baseAddress="http://localhost:9095/feedback" /> 
       </baseAddresses> 
      </host> 
      <endpoint binding="webHttpBinding" 
         contract="Nelibur.ServiceModel.Contracts.IJsonService" /> 
     </service> 
    </services> 
</system.serviceModel> 
+0

谢谢。我用这个编辑器创建了它。有“不应该”权限问题,但我再试一次,并阅读你的版本,当我有更多的时间。 –

+0

所以我强调这是客户端的app.config。由于某种原因,我似乎有版本= 2.0.0.0 –

相关问题