WCF 跟踪开关值已关闭,但仍有跟踪输出正在生成

标签 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>

然而仍然有跟踪输出被发送到指定的输出文件。这是为什么?我错过了什么?

最佳答案

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>

.NET framework for Configuring Message Logging

日志级别和其他选项在日志级别和选项部分讨论。

源的 switchValue 属性仅对跟踪有效。如果按如下方式为 System.ServiceModel.MessageLogging 跟踪源指定 switchValue 属性,则它不起作用。

复制
 <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">

如果要禁用跟踪源,则应改用 messageLogging 元素的 logMessagesAtServiceLevellogMalformedMessageslogMessagesAtTransportLevel 属性。您应该将所有这些属性设置为 false。这可以通过使用前面代码示例中的配置文件、通过配置编辑器 UI 界面或使用 WMI 来完成。有关配置编辑器工具的详细信息,请参阅配置编辑器工具 (SvcConfigEditor.exe)。有关 WMI 的详细信息,请参阅使用 Windows Management Instrumentation 进行诊断。

关于WCF 跟踪开关值已关闭,但仍有跟踪输出正在生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13411221/

相关文章:

Java 在特定调用上禁用堆栈跟踪?

mysql - 如何在 Web 应用程序中记录用户操作?

c - 在编译时从 __VA_ARGS__ 确定参数类型

c# - WCF 服务标记基本类型时出错

WCF SOA : CRUD Data Access Service. ..为什么要麻烦(或者我们的设计错误)?

c# - 如何返回 HTTP 429?

.net - WCF 是否需要配置来处理不同的身份验证方法?

c# - RazorEngine 3.7.7 - 编译缓存模板时出错

sql - Linux 进程事件

google-chrome - 如何在 Chrome 中保存 websocket 帧