PRB:"WSAEADDRESSINUSE"错误消息后,增加 IMAP 连接限制通过一个匿名端口连接尝试时

文章翻译 文章翻译
文章编号: 319502 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

当增加 IMAP 的连接限制,并从 Microsoft 电视邮件服务配置为具有很低的 MailboxCacheTTL 设置连接到 IMAP 服务器然后重试您收到"WSAEADDRESSINUSE"错误消息 (错误代码: 10048)。

原因

出现此行为是由于下列组合:
  • 默认状态下,Windows 2000 具有有限的空间用于匿名端口。此共享空间更受限于为 Microsoft 电视邮件服务配置在低 MailboxCacheTTL。(匿名端口是由计算机的 IP 堆栈分配的临时端口 ; 匿名端口分配从指定的端口的范围。唯一的端口 1024年-5000 使用 Windows 2000 中)。
  • 在套接字上的 SO_REUSEADDR 选项未打开,使套接字不能被关闭后立即重新使用。套接字必须保持保留 TIME_WAIT 状态四分钟。如果设置了 SO_REUSEADDR 选项 Windows 允许多个绑定到侦听套接字。
匿名端口 (短暂端口) 范围限制从一台计算机到远程计算机上某个特定服务的连接的最大数量。TCP/IP 协议使用元连接的 4 组 (服务器 IP、 服务器端口、 客户端 IP 和客户端的端口) 来区分连接 ; 如果匿名端口范围仅 4000 端口范围 (约) 只能有 4000 唯一从客户端计算机连接到远程服务一次。

该连接的结束临时端口是可重用,虽然大多数 IP 堆栈执行不重用该端口号,直到已使用的临时端口的整个池。因此,如果重新连接客户端程序,客户端分配新的连接的客户端的不同的临时端口号。在 Microsoft 电视邮件服务的情况下很低的 MailboxCacheTTL 设置 aggravates 这种情况,因为 IMAP 连接关闭并重新打开经常 (上几乎每个请求)。

端口范围 4000 可能看起来大,但时请考虑一个 TCP 连接必须通过 TIME_WAIT 状态终止,真正完成之前,您很小,当前的计算需求。例如对于即使连接的两面正确关闭其端点在的连接,因为的 TCP 的错误控制,每一侧必须等待,直到该连接的资源实际上可以被释放之前 TIME_WAIT 状态已过期。

TIME_WAIT 状态是两个时间段的最大生存期 (MSL)。(此原因 TIME_WAIT 状态是也称为 2MSL 状态。通常,具体取决于在 IP 堆栈 TIME_WAIT 状态配置为 240 的总秒。因此,您可以仅 4000 连接每个 240-第二个窗口,并且在练习中,可使用这些 4000 连接最多。

解决方案

若此行为请执行以下任一操作:
  • 通过修改 MaxUserPort 注册表项来增加约有 20,000 端口的匿名端口 (例如) 使用的端口范围。Windows 使用其匿名 (临时) 的端口范围 1024年到 5000 的传统 BSD 范围。您可以设置仅临时端口范围上限。若要修改 MaxUserPort 注册表项,请按照下列步骤操作:

    1. 启动注册表编辑器 (Regedt32.exe)。
    2. 在注册表中找到 MaxUserPort 项:

      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    3. 编辑 菜单上单击 添加值,然后添加以下注册表值:

      值名称: MaxUserPort
      数据类型: REG_DWORD
      值: 65534 (例如)
      有效范围: 5000-65534 (十进制)
      默认值: 0x1388 (5000 十进制)
    4. 退出注册表编辑器。
    说明: 此参数控制应用程序请求任何可用的用户的端口从系统时所用的最大端口数。通常,临时 (也就是短暂) 端口被分配给 1024年的值和 5000 (含) 之间。

    -或者-
  • 更改从 240 个的连接上超时时间为 300 秒 30 秒内从为任意长度秒 (默认值)。若要更改此值使用 TcpTimedWaitDelay 注册表参数。执行此操作、 启动注册表编辑器 (Regedt32.exe)、,在注册表中找到以下项,然后再修改值:

    HKEY_LOCAL_MACHINE\System\CurrectControlSet\services\Tcpip\Parameters

    TcpTimedWaitDelay

    密钥: Tcpip\Parameters
    值类型: REG_DWORD 时间以秒为单位)
    有效范围: 30-300 (十进制)
    默认值: 0xF0 (240 十进制)

    说明
    : 此参数确定在关闭该连接时,连接将保留在 TIME_WAIT 状态的时间长度。在 TIME_WAIT 状态的连接时,将套接字对不能重新使用。有关详细的信息,请参阅 RFC 793。
: 此问题由更糟,如果 MailboxCacheTTL 设置过低。如果问题仍然存在进行前面所述的注册表更改之后,可以增加邮箱 TTL 更改 MailboxCacheTTL 设置 SiteConfig.cfg 文件 (对于 Microsoft 服务器安装配置文件) 中。

更多信息

有关增大默认的匿名端口范围的其他信息请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
196271无法从 TCP 端口 5000 以上连接
149532Windows NT 客户端运行的端口

属性

文章编号: 319502 - 最后修改: 2003年6月18日 - 修订: 1.1
这篇文章中的信息适用于:
  • Microsoft TV Server 2.0 Service Pack 1
关键字:?
kbmt kbprb KB319502 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 319502
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com