HTTP 文件上载操作需要很长时间才能完成

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

256986 Description of the Microsoft Windows Registry

症状

当使用 HTTP 文件上载功能上载大小为几兆字节的文件时,上载操作需要很长时间才能完成。

注意:此问题记录在 Request For Comment (RFC) 1867“Form-based File Upload in HTML”中。

原因

产生此问题的原因在于:默认的 Winsock 发送缓冲区大小为 8 KB,因而 Internet Explorer 以 8 KB 大小的块区提供数据。在一般的网络上,这相当于每秒约 80 KB (KBp)(不考虑网络带宽)。

有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

214397 INFO:Design Issues - Sending Small Data Segments Over TCP w/Winsock

解决方案

要解决这一问题,请配置 Internet Explorer,以增大与 Winsock 进行通信时的发送缓冲区。当您使用 HTTP 文件上载方法时,这可以改善网络性能。为此,请按照下列步骤操作。

警告:注册表编辑器使用不当可造成严重问题,这些问题可能需要重新安装操作系统。Microsoft 不保证能够解决因为注册表编辑器使用不当而产生的问题。使用注册表编辑器需要您自担风险。
  1. 启动注册表编辑器 (Regedt32.exe)。
  2. 找到并单击下面的注册表项:

    HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings

  3. 编辑菜单上,单击添加值,然后添加下列注册表值:

    数值名称:SocketSendBufferLength
    数据类型:REG_DWORD
    基数:十进制
    值数据:所需的缓冲区大小(字节)

    缓冲区大小值选项:

    16 KB 缓冲区 = 16384
    24 KB 缓冲区 = 24576
    32 KB 缓冲区 = 32768
    40 KB 缓冲区 = 40960
    48 KB 缓冲区 = 49152
    56 KB 缓冲区 = 57344
    64 KB 缓冲区 = 65536

  4. 退出注册表编辑器。
请确保从 16 KB 缓冲区开始测试每一个值。当上载性能变得可以接受时,请选择相应的缓冲区值。

状态

这种行为是设计使然。

更多信息

当您使用本文“解决办法”部分中描述的过程时,任何使用 WININETAPI HTTPSendRequest 函数(下列 Microsoft Developer Network (MSDN) Web 站点提供)的程序都将按注册表项的定义分配和请求 Winsock 发送缓冲区。

有关 HTTPSendRequest 函数的其他信息,请访问下列 MSDN Web 站点:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/httpsendrequest.asp

有关 Winsock 发送缓冲区行为的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

214397 INFO:Design Issues - Sending Data Segments Over TCP w/Winsock

这篇文章中的信息适用于:

  • Microsoft Internet Explorer version 6 for Windows XP
  • Microsoft Internet Explorer version 6 for Windows 2000
  • Microsoft Internet Explorer version 6 for Windows NT 4.0
  • Microsoft Internet Explorer version 6 for Windows Millennium Edition
  • Microsoft Internet Explorer version 6 for Windows 98 Second Edition
  • Microsoft Internet Explorer 5.5 for Windows 2000
  • Microsoft Internet Explorer 5.5 for Windows NT 4.0
  • Microsoft Internet Explorer 5.5 for Windows Millennium Edition
  • Microsoft Internet Explorer 5.5 for Windows 98 Second Edition
  • Microsoft Internet Explorer 5.01 for Windows 2000
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值