WCF 跟踪和消息日志记录不会在服务主机(服务器)端写入日志文件

本文关键字:服务器 文件 日志 主机 服务 消息日志 跟踪 记录 WCF | 更新日期: 2023-09-27 18:31:07

我的 WCF 服务出现了某种错误。

我需要确定发生了什么,因此我尝试启用服务跟踪日志记录。

我遵循了规定的准则,并使用 wcf 配置编辑器在我的客户端和服务器中设置跟踪和消息日志记录。

跟踪在客户端工作正常,但在这种情况下,消息的用途有限,因为它们只是指示真正的故障发生在服务器上,我应该检查服务器日志:

接收 HTTP 响应时出错 http://localhost:24162/MembershipService.svc。这可能是由于服务终结点 绑定不使用 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>
        <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。

在查看了此站点上的现有问题并进行大量谷歌搜索后,遵循一些建议(确保文件夹存在,验证用户对该文件夹具有适当的权限),我觉得没有更接近理解为什么我的跟踪没有写入文件。 关于如何对跟踪日志记录进行故障排除的任何建议? 是否有任何记录在其他地方的信息可以指示跟踪不起作用的原因?

供参考和未来的读者 -

我去了这里获取服务跟踪日志记录配置说明。我去这里和这里尝试对未写入的日志文件进行故障排除。

WCF 跟踪和消息日志记录不会在服务主机(服务器)端写入日志文件

大约

一个月前,我在跟踪日志记录工作后写了这篇文章。 看看它是否对你有帮助。在您的配置中,没有任何内容看起来不正确。 但是,也许从我的配置重新开始将有助于阐明情况。