添加跟踪日志记录配置时,WCF服务无法启动

时间:2012-07-18 15:52:56

标签: c# .net wcf

我有一个工作的WCF服务,我想挂钩,所以我可以查看日志。所以,我添加了一个.config文件,现在我的服务根本无法启动。

在我的代码中,我执行以下操作:

private ServiceHost _myHost;

...

        _myHost= new ServiceHost(typeof (MyType), new Uri(baseUri));
        _myHost.AddServiceEndpoint(typeof (myInterface), new NetNamedPipeBinding(), hostName);
        _myHost.Open();

并且,如上所述,当我没有.config文件时,这可以正常工作。但是,要查看日志,我必须添加一个如下所示的.config文件:

   <system.diagnostics>
  <sources>
     <source propagateActivity="true" name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
        <listeners>
           <add type="System.Diagnostics.DefaultTraceListener" name="Default">
              <filter type="" />
           </add>
           <add initializeData="c:\logs\Traces.svclog" type="System.Diagnostics.XmlWriterTraceListener"
              name="traceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack">
              <filter type="" />
           </add>
        </listeners>
     </source>
  </sources>
</system.diagnostics>
<system.serviceModel>
  <diagnostics>
     <messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true"
        logMessagesAtTransportLevel="true" />
     <endToEndTracing activityTracing="true" messageFlowTracing="true" />
  </diagnostics>
</system.serviceModel>

我现在在记录器中得到的错误是Failed to open System.ServiceModel.ServiceHost,它出现在我ServiceHost的实例创建中。那么,为什么添加日志配置会有所不同呢?

更新

记录器是ServiceTraceViewer,一旦我输入配置,我就会看到错误。因此,日志记录正在运行,它只是破坏了代码的功能。我在某处读到如果我使用.config,我必须在配置中有一个端点。这是真的,如果是这样,有没有解决方法,因为我通过代码

这样做

0 个答案:

没有答案