我有一个工作的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,我必须在配置中有一个端点。这是真的,如果是这样,有没有解决方法,因为我通过代码
这样做