如何从我的Web应用程序注销出站HTTP请求?

我们的一个应用程序正在调用最近被切换到另一个URI的第三方web服务。 我们需要调查一下,看看旧地址在哪里(代码/configuration已被修改为新的地址)。 是否有一个快速轻量级的方式来logging服务器正在发出的任何出站HTTP请求?

它是一个ASP.Net应用程序,运行在带有IIS 7的Windows 2008 Server上。

在服务器上安装http://www.winpcap.org/windump/ ,并使用以下标志运行它:

windump -w“C:\ Temp \ tcpdump.log”dst主机{旧IP地址} dst端口80

你可以离开跑步一天左右,然后看看日志。 使用-w将写出原始数据包,以便您可以确切地看到正在发送什么(因此,希望是什么发送它)。

请注意,我只使用了tcpdump,windump基于的程序,所以如果它们之间存在差异,则可能需要调整标志。 但是有很多的tcpdump教程,引导你在正确的方向。

Wireshark的! 规则! 这相当于大卫主教在上面build议的GUI版本^^^^^

但是,如果你想要一个更加集成的Windows工具,这也枚举涉及本地进程有sysinternal工具是免费的微软。

特别是TCPView可以用来查看哪个进程连接到了什么远程主机。 (但是,除非最近添加了该function,否则必须回退到windump或wireshark以匹配请求URL的连接)

如果要将所有这些请求logging到某个文件,还有一个Tcpvcon命令行版本。 但是我想这与长时间运行任何数据包转储的相同的考虑是一样的, 要小心你不要把你的磁盘填满并且完全崩溃。

不幸的是,我没有任何ASP.Net的经验,但我可以提供一个循环的方法,你可以跟踪这个。 如果你正在服务器前面运行Squid,那么通过Squid日志快速浏览来识别对不正确的URI的请求是非常容易的。 我不build议安装一个Squid盒子, 只是因为这个原因,但是如果你已经有了一个Squid代理,它可能是识别不正确的URI的最快方法。