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 XPMicrosoft 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
相关文章推荐
- HTTP 文件上载操作需要很长时间才能完成
- 删除文件时提示“您需要计算机管理员提供的权限才能完成此操作”
- 简单sql查询接口(需要在文件中指定conn才能进行sql语句操作)
- 【0005】删除文件时,提示你需要权限才能执行此操作
- vue todomvc案例中全选框出错,需要点三次才能完成全选取消全选两种操作
- Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法
- WIN10 解决“无法完成操作,因为文件包含病毒或潜在的垃圾软件”
- 获取需要登陆才能被访问的页面,HttpClient(扩展HttpWebRequest)来实现
- 你需要提供管理员权限才能移动此文件
- Flex与.NET互操作(五):使用FileReference+HttpHandler实现文件上传/下载
- EasyUI刚入门需要向项目导入那几个文件才能使用?
- 【Form窗体】文件操作完成记事本功能
- rails AJAX方法 操作后需要执行js文件中命令的方法
- android下需要怎么样配置或者操作才能在界面里显示状态栏(status bar)
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件转http://www.cnblogs.com/zhuzhiyuan/archive/2011/04/22/2024485.html
- 关于office 2013的使用,在打开word文件的时候,需要进入安全模式才能启动WORD的解决办法
- httpclient模拟需要登陆之后才能访问第三方网站(并且需要一些人工参与的操作)
- PHP之文件操作,http请求数据格式,模拟get和post,CURL模拟请求的使用
- 文件操作命令http://blog.csdn.net/hsd2012/article/details/45170817
- Win32的Winnet操作:http的post、get请求、下载文件,ftp的上传、下载