问: 我想在运行Internet Security and Acceleration(ISA)Server 2000的计算机上发布一个Web站点和一个FTP站点。可问题是:我无法使其正常运作!当我运行 “netstat—na” 时,它说端口21和80正在监听所有接口。我应该如何让我的站点只监听我在Microsoft Internet信息服务(IIS)控制台中所设定的IP地址呢?
答: 您遇到了一个称为 套接字池(socket pooling) 的IIS 5.0的所存在的一个功能问题。IIS 5.0实施套接字池用以提高性能并减少所需的系统资源量。但是,套接字池特性会导致IIS服务在所有接口上监听IP地址。当您试图将WWW、FTP或简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)设定为仅监听内部接口IP地址时,就会引起问题。
有两个不同的步骤可用于禁用套接字池,其中一个应用于FTP和WWW服务,另一个则应用于SMTP服务。

禁用FTP和WWW服务的套接字池

要禁用FTP服务的套接字池,执行下列步骤:
  1. 打开一个命令提示符窗口,导航到\Inetpub\Adminscripts\文件夹。
  2. 键入
    “net stop msftpsvc”
    ,并按ENTER键。
  3. 输入
    “cscript adsutil.vbs set msftpsvc/disablesocketpooling true”
    并按ENTER键。
  4. 在命令提示中,键入
    “net start msftpsvc”
    并按ENTER键。
当您在禁用了FTP服务的套接字池后再次运行 “netstat —na” 命令时,该服务将只监听您在IIS控制台中所设定的IP地址。
注意: 如果您想禁用WWW服务的套接字池,在以上步骤中将 “msftpsvc” 替换为 “w3svc”

禁用SMTP服务的套接字池

要禁用SMTP服务的套接字池,您可以使用一个名为Mdutil.exe的实用程序。您在Microsoft Windows 2000安装光盘的\I386\Mdutil.ex_路径中找到该实用程序。
使用解压缩工具将上面提到的文件解压到\Inetpub\Adminiscripts\Mdutil.exe。
执行下列步骤:
  1. 在命令提示符窗口中,键入
    “net stop smtpsvc”
    停止SMTP服务。
  2. 在命令提示中,键入
    “mdutil set —path smtpsvc/1 —value 1 —dtype 1 —prop 1029 —attrib 1”
  3. 如果您拥有多个SMTP虚拟服务器,就需要通过更改 “smtpsvc/1” 的值,禁用每一个虚拟的套接字池。经该值更改为“2”,禁用第二个SMTP虚拟服务器;更改为“3”,则禁用第三个SMTP虚拟服务器;依此类推。
  4. 在命令提示中,键入
    “net start smtpsvc”
    重新启动SMTP服务。
在禁用了套接字池之后,再次运行 “netstat —na” 命令。SMTP服务将只监听您在Internet信息服务控制台中所设定的IP地址。