【发布时间】:2014-11-14 16:21:32
【问题描述】:
我正在尝试使用 4.0 .Net Framework 跟踪用 C# 编写的 SOAP Web 服务。
学习本教程后:http://msdn.microsoft.com/en-us/library/ty48b824%28v=vs.110%29.aspx 我通过以下方式配置了我的 Web 服务客户端的应用程序配置:
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="System.Net">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="TraceFile"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add name="TraceFile" type="System.Diagnostics.TextWriterTraceListener" initializeData="trace.log"/>
</sharedListeners>
<switches>
<add name="System.Net" value="Verbose"/>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
这可行,但是我不需要在跟踪日志中查看十六进制代码。我提到的教程说我需要将“tracemode”属性设置为“protocolonly”。但是,当我添加此属性时,Visual Studio 告诉我此属性无效。
我还是尝试运行该程序。但是,当我创建 Web 服务类的实例时,我得到一个“TypeInitializationException”。如果我删除了 tracemode 属性,客户端可以正常工作,但我仍然会在我的跟踪日志中获得十六进制代码。
【问题讨论】:
-
仔细阅读后我发现:“可选字符串属性。设置为 includehex 以十六进制和文本格式显示协议跟踪。设置为 protocolonly 以仅显示文本。默认值为 includehex。此属性必须在
元素上设置,如示例中所示。如果在 元素下的元素上设置此属性,则会引发异常。"
标签: c# .net web-services soap