当前位置:软件学习 > ISA >>

如何禁止Socket Pooling

Socket pooling是微软IIS服务的一个侦听IP的问题,当你在IIS管理器里面选择Web服务器侦听的IP时,就算你选择了单个IP,但是IIS的这个Web站点还是会侦听在所有的IP上。例如,我的网关计算机上面有IIS服务,然后有2个IP(192.168.0.1,61.139.x.x),那么IIS的默认站点是会绑定在这两个IP上,就算你在只是选择侦听他们中的一个,如192.168.0.1,但是IIS还是占用了另外一个61.139.x.x的对应端口。这对于接在多个网络的计算机是一种潜在的安全风险,而且也导致一些位于网关计算机上的web站点不能正常的发布,如位于ISA 2004或者ISA 2000上的web站点,因为ISA需要占用外部IP的80端口来侦听进入的http请求,但是web站点已经占用了此端口,所以,必须禁用IIS的Socket pooling,以便让IIS只是在某个IP上进行侦听。
对于IIS 5.0和IIS 6.0,解决的办法是不一样的,以下我先介绍在IIS 5.0中的处理办法,执行以下步骤:

1.打开命令提示符,进入 X:\Inetpub\Adminscripts 目录(X 是IIS安装驱动器)。

2.运行此命令:

cscript adsutil.vbs set w3svc/disablesocketpooling true

命令返回结果如下:

disablesocketpooling : (BOOLEAN) True

3.停止并运行IIS Admin服务。

4.重启 WWW服务。

 

在IIS 6.0中,想解决这个问题,需要使用httpcfg.exe,它是Windows server 2003的support tools,存放在安装CD的Support\Tools\Support.cab文件中。

执行以下步骤以解决此问题:

安装Windows server 2003安装CD的\Support\Tools\Support.msi,然后打开命令提示符,运行httpcfg set iplisten -i xxx.xxx.x.x(xxx.xxx.x.x为你想要IIS侦听的IP地址),如果成功修改,Httpcfg 返回下列提示:

HttpSetServiceConfiguration completed with 0

 

你可以运行httpcfg query iplisten命令来察看当前IIS侦听的IP地址。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,