从HttpWebRequest / Response获取底层tcp连接

我正在尝试获取有关当我连接到比HttpWebRequest和HttpWebResponse给我更低级别的网站时发生的事情的更多信息。 我正在使用C#。

我希望能够看到有关dns查找的信息以及建立连接所花费的时间(如果建立了新连接)。 HttpWebRequest和HttpWebResponse工作在比这更高的级别,我想询问是否有获取底层TcpClient对象(或他们使用的任何低级别对象)的方法。

如果不可能,那么有没有办法获取和操作.net维护的连接列表,而不通过HttpWebRequest或HttpWebResponse获取它?

我无法更改我正在使用TcpClient的应用程序,因为可靠地实现所有http内容太费时间了。

我能得到的最好的是创建一个app.config文件,其中包含以下信息:

                         

这将启用跟踪,并将在您的应用程序文件夹中启动名为“System.Net.trace.log”的日志文件。 您不会获得所需的所有信息,并且在应用程序运行时不易消耗,但至少您不需要运行第三方程序。 它的记录不多,但至少有一些信息 。

使用Wireshark,这是找出所有内容的最佳方式。

如果不是Wireshark,那就使用Fiddler 。