WCF跟踪switchvalue已关闭,但仍会生成跟踪输出

Sha*_*Wet 7 wcf trace

在打开WCF跟踪以帮助找到问题之后,我现在希望关闭跟踪.所以我已将配置文件更改为此...

<system.diagnostics>
        <sources>
            <source name="System.ServiceModel" switchValue="Off" >
                <!-- Information,ActivityTracing-->
                <listeners>
                    <add name="xmlTraceListener" />
                </listeners>
            </source>
            <source name="System.ServiceModel.MessageLogging" switchValue="Off" >
                <listeners>
                    <add name="xmlTraceListener" />
                </listeners>
            </source>
        </sources>
        <sharedListeners>
            <add name="xmlTraceListener" 
                 type="System.Diagnostics.XmlWriterTraceListener" 
                 initializeData="C:\WCFLogs\DataPortalTrace.svclog" />
        </sharedListeners>
        <trace autoflush="true" />
    </system.diagnostics>
Run Code Online (Sandbox Code Playgroud)

然而,仍有痕迹输出被发送到指示的输出文件.这是为什么?我错过了什么?

小智 13

switchValue="Off"只会控制System.ServiceModel.它无法控制System.ServiceModel.MessageLogging

据我所知,你可以控制通过maxMessagesToLog="0"- 你可能已经<diagnostics>标记了<system.serviceModel>

<diagnostics>
      <messageLogging
           logEntireMessage="true"
           logMalformedMessages="true"
           logMessagesAtServiceLevel="true"
           logMessagesAtTransportLevel="true"
           maxMessagesToLog="0"
       />
</diagnostics>
Run Code Online (Sandbox Code Playgroud)

用于配置消息日志记录的.NET框架

日志级别和选项部分讨论了日志记录级别以及其他选项.

switchValue源的属性仅对跟踪有效.如果为System.ServiceModel.MessageLogging跟踪源指定switchValue属性,如下所示,则无效.

复制

 <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
Run Code Online (Sandbox Code Playgroud)

如果您想禁用跟踪源,你应该使用logMessagesAtServiceLevel,logMalformedMessages以及logMessagesAtTransportLevel在messageLogging元素的属性来代替.您应该将所有这些属性设置为false.这可以通过使用上一代码示例中的配置文件,Configuration Editor UI界面或使用WMI来完成.有关配置编辑器工具的详细信息,请参阅配置编辑器工具(SvcConfigEditor.exe).有关WMI的详细信息,请参阅使用Windows Management Instrumentation进行诊断.

  • 或者只是为了俗气,你可以注释掉 &lt;sources&gt; 块 (2认同)