Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF日志:为什么没有为TraceListener调用Close?_.net_Wcf_Logging_Tracelistener - Fatal编程技术网

.net WCF日志:为什么没有为TraceListener调用Close?

.net WCF日志:为什么没有为TraceListener调用Close?,.net,wcf,logging,tracelistener,.net,Wcf,Logging,Tracelistener,我正在尝试在传输级别将邮件记录到我的WCF服务。我已经成功地遵循了在网上找到的一些说明,但是现在我想实现我自己的跟踪侦听器,它支持我们的内部日志解决方案 我已经实现了一个跟踪侦听器,并使用承载WCF服务的windows服务的app.config对其进行了配置。下面是我用来配置日志记录的XML <system.diagnostics> <sources> <source name="System.ServiceModel.MessageLogging"&g

我正在尝试在传输级别将邮件记录到我的WCF服务。我已经成功地遵循了在网上找到的一些说明,但是现在我想实现我自己的跟踪侦听器,它支持我们的内部日志解决方案

我已经实现了一个跟踪侦听器,并使用承载WCF服务的windows服务的app.config对其进行了配置。下面是我用来配置日志记录的XML

<system.diagnostics>
  <sources>
    <source name="System.ServiceModel.MessageLogging">
      <listeners>
        <add name="messages" type="my.namespace.AdvancedLogTraceListener, Tools.Logging, Version=2.0.3.1, Culture=neutral" initializeData="C:\Logs" />
      </listeners>
    </source>
  </sources>
</system.diagnostics>

...

<diagnostics>
  <messageLogging logEntireMessage="true" logMalformedMessages="false" logMessagesAtServiceLevel="false" logMessagesAtTransportLevel="true">
  </messageLogging>
</diagnostics>

只是它不起作用。TraceListener的Close方法似乎没有被调用。我该怎么做才能确保在承载WCF服务的应用程序关闭时调用Close方法?

请不要介意,我找到了另一个实现消息检查器的解决方案。

请在此处详细介绍该解决方案,以便我们其他人可以了解您是如何解决问题的?
public override void Close()
{
   base.Close();
   this.logFile.Close();
}