在打开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)
日志级别和选项部分讨论了日志记录级别以及其他选项.
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进行诊断.
| 归档时间: |
|
| 查看次数: |
8679 次 |
| 最近记录: |