如何:配置网络跟踪

应用程序或计算机配置文件可保存用于确定网络跟踪的格式和内容的设置。 在执行此过程之前,请确保启用跟踪。 有关详细信息,请参阅启用网络跟踪

计算机配置文件 machine.config 存储在 %windir%\Microsoft.NET\Framework 文件夹中。 安装在计算机上的每个版本的 .NET Framework,在 %windir%\Microsoft.NET\Framework 下的文件夹中分别有一个单独的 machine.config 文件,例如:

  • C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config
  • C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

也可以在应用程序的配置文件中做出这些设置,其优先级别高于计算机配置文件。

配置网络跟踪

要配置网络跟踪,请将下面的行添加到相应的配置文件。 这些设置的值和选项已在下表中予以说明。

<configuration>
  <system.diagnostics>
    <sources>
      <source name="System.Net" tracemode="includehex" maxdatasize="1024">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
      <source name="System.Net.Cache">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
      <source name="System.Net.Http">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
      <source name="System.Net.Sockets">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
      <source name="System.Net.WebSockets">
        <listeners>
          <add name="System.Net"/>
        </listeners>
      </source>
   </sources>
    <switches>
      <add name="System.Net" value="Verbose"/>
      <add name="System.Net.Cache" value="Verbose"/>
      <add name="System.Net.Http" value="Verbose"/>
      <add name="System.Net.Sockets" value="Verbose"/>
      <add name="System.Net.WebSockets" value="Verbose"/>
    </switches>
    <sharedListeners>
      <add name="System.Net"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="network.log"
        traceOutputOptions="ProcessId, DateTime"
      />
    </sharedListeners>
    <trace autoflush="true"/>
  </system.diagnostics>
</configuration>

跟踪方法的输出

当你将一个名称添加到 <switches> 块后,跟踪输出中将包括来自与该名称相关的一些方法的信息。 下表对输出进行了说明:

“属性” 输出来自
System.Net.Sockets SocketTcpListenerTcpClientDns 类的一些公共方法。
System.Net HttpWebRequestHttpWebResponseFtpWebRequestFtpWebResponse 类的一些公共方法,以及 SSL 调试信息(证书无效、缺少颁发机构列表以及客户端证书错误)。
System.Net.HttpListener HttpListenerHttpListenerRequestHttpListenerResponse 类的一些公共方法。
System.Net.Cache System.Net.Cache 中的一些私有方法和内部方法。
System.Net.Http HttpClientDelegatingHandlerHttpClientHandlerHttpMessageHandlerMessageProcessingHandlerWebRequestHandler 类的一些公共方法。
System.Net.WebSockets.WebSocket ClientWebSocketWebSocket 类的一些公共方法。

跟踪输出属性

下表中列出的属性用于配置跟踪输出:

特性名 特性值
value 必选的 String 特性。 设置输出的详细程度。 合法值为 CriticalErrorVerboseWarningInformation

必须在 switches 元素的 add 元素上设置此属性 。 如果在 source 元素上设置此属性,则会引发异常。

示例:<add name="System.Net" value="Verbose"/>
maxdatasize 可选的 Int32 特性。 设置每行跟踪中包含的最大网络数据字节数。 默认值为 1024。

必须在 source 元素上设置此属性。 如果在 switches 元素下的一个元素上设置此属性,则会引发异常。

示例:<source name="System.Net" tracemode="includehex" maxdatasize="1024">
tracemode 可选的 String 特性。 设置为 includehex 将会以十六进制和文本格式显示协议跟踪。 设置为 protocolonly 将会仅显示文本。 默认值为 includehex

必须在 source 元素上设置此属性。 如果在 switches 元素下的一个元素上设置此属性,则会引发异常。

示例:<source name="System.Net" tracemode="includehex" maxdatasize="1024">

请参阅