错误: 您速度慢时,遇到 ISAPI 应用程序和 Internet Information Services 6.0 承载的 CGI 应用程序发送响应

文章翻译 文章翻译
文章编号: 906977 - 查看本文应用于的产品
重要本文包含有关如何修改注册表的信息。请确保您对其进行修改之前备份注册表。请确保您知道如何还原注册表发生问题。有关如何备份、 还原,以及修改注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986在 Microsoft Windows 注册表的说明
展开全部 | 关闭全部

症状

当 Inetrnet 服务器应用程序编程 Interface(ISAPI) 应用程序或 Microsoft Internet Information Services (IIS) 6.0 承载的通用网关接口 (CGI) 应用程序发送的响应时,您会遇到性能降低。

当 ISAPI 应用程序或 CGI 应用程序承载 Microsoft Internet Information Services (IIS) 5.0 上发送的响应时,您不会遇到此问题。

原因

出现此问题是由于默认情况下,发送通过 HttpSendHttpResponse API 的缓冲区大小。这些包括发送从 ISAPI 应用程序和 CGI 应用程序在 IIS 6.0 中做小的响应,但频繁发送。

解决方案

警告如果您修改注册表错误地使用注册表编辑器或使用另一种方法,则可能会出现严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证可以解决这些问题。修改注册表的风险由您自己承担。

若要解决此问题,将 MaxBufferedSendBytes 条目添加到注册表中。若要向注册表中添加 MaxBufferedSendBytes 条目,请按照下列步骤操作:
  1. 单击 开始、 单击 运行,键入 注册表编辑器,然后单击 确定
  2. 找到并单击下面的注册表项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
  3. 用鼠标右键单击 参数,指向 新建,然后单击 DWORD 值
  4. 键入 MaxBufferedSendBytes,然后按 ENTER 键。
  5. 用鼠标右键单击 MaxBufferedSendBytes,然后单击 修改
  6. 数值数据 框中键入 65536,然后单击 确定
  7. 退出注册表编辑器。
  8. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  9. 命令提示符键入 网停止 http
  10. 命令提示符键入 iisreset /restart
注意若要通过使用下列步骤解决此问题,您必须安装的 Microsoft Windows Server 2003 Service Pack 1。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的错误。

更多信息

在 IIS 6.0 中默认的缓冲区大小会导致 HTTP 协议堆栈 (HTTP.sys) 经常发送响应,并将在不使用最大段大小的数据包中发送响应。例如对于如果最大段大小为 1,460 字节,您可能会看到类似于以下网络监视器中的跟踪信息:
TCP: Control Bits: .A...., len: 1460, seq: 806718019-806719479, ack:1984105268, win:65459, src:   80  dst: 2032
TCP: Control Bits: .AP..., len:  588, seq: 806719479-806720067, ack:1984105268, win:65459, src:   80  dst: 2032
TCP: Control Bits: .AP..., len: 1024, seq: 806720067-806721091, ack:1984105268, win:65459, src:   80  dst: 2032
因为数据包很小,并且经常发送,此问题是更明显,因为网络延迟。此问题可能是在 intranet 环境中不太明显。

MaxBufferedSendBytes 项的默认值为 8,192 字节。当为 64 kb 设置 MaxBufferedSendBytes 项的值时,HTTP.sys 将使用最大段大小的数据包发送。

注意此更改会增加内核 NonPagedPool 内存使用情况。

参考

有关 IIS 6.0 中的性能问题的详细信息在发送 HTTP 数据响应通过 WriteClient API 时,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
840875错误: IIS 6.0 时比 IIS 5.0 慢 WriteClient API 用于发送数据
有关性能的详细信息时使用一个 Windows 套接字 API 的问题程序若要将数据复制到 TCP 服务器,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
823764当您将数据复制到 TCP 服务器使用的 Windows 套接字 API 程序时,会发生速度慢

属性

文章编号: 906977 - 最后修改: 2007年12月3日 - 修订: 3.4
这篇文章中的信息适用于:
  • Microsoft Internet Information Services 6.0?当用于
    • Microsoft Windows Server 2003 Datacenter Edition
    • Microsoft Windows Server 2003 Enterprise Edition
    • Microsoft Windows Server 2003 Standard Edition
    • Microsoft Windows Server 2003 Service Pack 1
关键字:?
kbmt kbregistry kbtshoot kbbug kbprb KB906977 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 906977
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