您的位置:首页 > 理论基础 > 计算机网络

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

2007-04-28 13:49 288 查看

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 不保证能够解决因为注册表编辑器使用不当而产生的问题。使用注册表编辑器需要您自担风险。

启动注册表编辑器 (Regedt32.exe)。

找到并单击下面的注册表项:
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings

编辑菜单上,单击添加值,然后添加下列注册表值:
数值名称:SocketSendBufferLength
数据类型:REG_DWORD
基数:十进制
值数据:所需的缓冲区大小(字节)
缓冲区大小值选项:
16 KB 缓冲区 = 16384
24 KB 缓冲区 = 24576
32 KB 缓冲区 = 32768
40 KB 缓冲区 = 40960
48 KB 缓冲区 = 49152
56 KB 缓冲区 = 57344
64 KB 缓冲区 = 65536

退出注册表编辑器。

请确保从 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

发表于 2004年7月20日 10:34
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐