如何使用.NET网络跟踪记录网络流量的详细信息?

如何使用.NET网络跟踪记录网络流量的详细信息?,.net,httpwebrequest,.net,Httpwebrequest,我的应用程序正在使用其清单的配置设置(app.config;请参见下面的xml)来控制.NET网络跟踪(根据)。据我所知,这是一种“无代码”方法,仅从app.config文件配置,不需要实际代码来记录任何内容。在本例中,我将以详细的方式初始化一组System.Net类的侦听器。所以我假设它会自动记录任何被调用的方法,比如从HttpWebRequest.GetResponse()方法捕获所有网络请求和响应(特别是异常)。它将自动输出到initializeData属性中指定的文件名 只是我没看到那个

我的应用程序正在使用其清单的配置设置(app.config;请参见下面的xml)来控制.NET网络跟踪(根据)。据我所知,这是一种“无代码”方法,仅从app.config文件配置,不需要实际代码来记录任何内容。在本例中,我将以详细的方式初始化一组System.Net类的侦听器。所以我假设它会自动记录任何被调用的方法,比如从HttpWebRequest.GetResponse()方法捕获所有网络请求和响应(特别是异常)。它将自动输出到initializeData属性中指定的文件名

只是我没看到那个文件。根据下面的清单,我将遵循中的示例.config文件。要么没有记录任何内容,要么跟踪根本不起作用。我在项目的Build选项卡上选中了“Define TRACE constant”框,/bin/Debug目录中的MyApp.dll.config文件是项目中主app.config文件的良好副本

我的假设是错误的,我必须写代码吗?如果是,我从哪里获得低级网络详细信息(根据此处)?我查看了关于一般跟踪的文档(),TraceSource.TraceData和TraceSource.TraceEvent方法(以及类似的方法)看起来很合适。然而,如何专门为HttpWebRequest.GetResponse实现这一点让我不知所措。这些方法期望跟踪数据作为参数,而网络跟踪文档暗示它是自动的

因此,要么A)我的魔术日志文件在哪里,要么B)如何输出网络流量跟踪

<configuration> 
<system.diagnostics>
<trace autoflush="true" indentsize="4">
  <listeners>
    <add name="file" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\\MyApp\\bin\\Debug\\network.log"/>
  </listeners>
</trace>
<sources>
  <source name="System.Net" tracemode="protocolonly" 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="C:\\MyApp\\bin\\Debug\\network.log"
       traceOutputOptions="ProcessId, DateTime"
  />
</sharedListeners>
<trace autoflush="true"/>
  </system.diagnostics>
</configuration>