我的 WCF 服务出现了某种错误。
我需要确定发生了什么,因此我尝试启用服务跟踪日志记录。
我遵循了规定的指导方针并使用wcf 配置编辑器在我的客户端和服务器中设置跟踪和消息日志记录。
跟踪在客户端工作正常,但在这种情况下消息的用途有限,因为它们只是表明真正的故障发生在服务器上,我应该检查服务器日志:
接收对http://localhost:24162/MembershipService.svc的 HTTP 响应时出错 。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。
我在调试模式下运行,所以本例中的服务器是在端口 24162 上运行的 asp.net 开发服务器。
我的服务主机的 web.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 name="ServiceModelTraceListener">
<filter type="" />
</add>
</listeners>
</source>
<source name="System.ServiceModel.MessageLogging" switchValue="Verbose,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:\Logs\web_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelTraceListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
<add initializeData="C:\Logs\web_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp">
<filter type="" />
</add>
</sharedListeners>
<trace autoflush="true" />
和 system.servicemodel 部分
<system.serviceModel>
<diagnostics>
<messageLogging logEntireMessage="true" logKnownPii="true" logMalformedMessages="true"
logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" />
<endToEndTracing propagateActivity="true" activityTracing="true"
messageFlowTracing="true" />
</diagnostics>
</system.serviceModel>
目录“C:\Logs”确实存在,并且我已授予“所有人”完全控制权。我还验证了 TRACE 常量的定义只是为了确定。
如您所见,我正在尝试捕获跟踪/消息日志记录必须提供的任何内容。什么都可以。但是,唉,我什么也没得到,nada,zilch。
在查看了该站点上的现有问题并进行了大量谷歌搜索后,遵循了一些建议(确保文件夹存在,验证用户对该文件夹具有适当的权限),我觉得没有更接近理解为什么我的跟踪没有写入文件. 有关如何解决跟踪日志记录的任何建议?是否有任何信息记录在其他地方,表明为什么跟踪不起作用?
供参考和未来的读者 -