监视IIS .NET出站连接

时间:2014-09-15 21:48:01

标签: c# asp.net iis netstat perfmon

我们在IIS(6.0)的应用程序池中运行了2个.NET(C#)应用程序。一个应用程序(让我们称之为APP-A)与第二个应用程序APP-B建立出站连接。 我们认为APP-A可以对APP-B进行的出站连接数量有限,可以通过多种设置进行更改。

问题是:我们如何监控任何.NET应用程序的出站连接数?

我已经完成了一些perfmon计数器和netstat示例,但是所有内容似乎都在处理入站连接或总连接,但没有任何内容可以深入到出站连接。

即使您拥有适用于不同.NET或不同IIS版本的信息,也请发布。

1 个答案:

答案 0 :(得分:1)

IIS依赖HTTP.SYS代表IIS进行TCP侦听(在端口80或您的站点正在侦听的任何内容)。这意味着,就NETSTAT而言,进行监听的过程是系统过程(4)。由于此行为,在您的方案中,您的实际应用程序池进程不是在侦听。因此,NETSTAT应该为您提供所需的信息。

1)确定您感兴趣的应用程序池并找到其进程ID。您可以使用任务管理器执行此操作,并通过将其标识与应用程序池名称(IIS 7.5+)相匹配来查找运行应用程序池的W3WP.EXE。或者您可以让您的应用程序以某种方式以编程方式转储进程ID。或者您可以使用NETSH HTTP来识别进程。无论如何,确定有问题的进程ID。

2)运行

NETSTAT -A -O | findstr <ProcessId>

这将识别为给定流程建立/监听的所有连接。但是,由于您几乎肯定没有在流程中监听,因此您拥有出站连接列表。

NETSTAT有点慢,所以您也可以使用TCPVIEW(SysInternal工具)成功找到给定流程的连接。

希望有所帮助。