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