HTTP 檔案上載作業花費很長時間才能完成

文章翻譯 文章翻譯
文章編號: 329781 - 檢視此文章適用的產品。
重要:本文包含有關修改登錄的相關資訊。修改登錄之前,請務必將它備份起來,並瞭解如何在發生問題時還原登錄。如需有關如何備份、還原和編輯登錄的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
256986 Microsoft Windows 登錄說明
全部展開 | 全部摺疊

徵狀

當您使用 HTTP 檔案上載功能上載多個 MB 大小的檔案時,上載作業可能要花費很長時間才能完成。

注意 這個問題已記載於「要求建議」(RFC) 1867 的「使用 HTML 的表單檔案上載」(Form-based File Upload in HTML) 中。

發生的原因

之所以發生這個問題,是因為預設的 Winsock「傳送」緩衝區為 8 KB,因此 Internet Explorer 會以 8 KB 的區塊提供資料。在一般網路上,不論網路頻寬為何,這等於每秒約 80 KB (KBps) 的傳送速度。

如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
214397 Design issues - Sending small data segments over TCP with 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) 網站所記載) 的程式都會依照登錄機碼所定義,配置及要求 Winsock「傳送」緩衝區。

如需有關 HTTPSendRequest 函數的詳細資訊,請造訪下列 MSDN 網站:
http://msdn2.microsoft.com/en-us/library/aa384247.aspx
如需有關 Winsock「傳送」緩衝區行為的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
214397 Design issues - Sending small data segments over TCP with Winsock

屬性

文章編號: 329781 - 上次校閱: 2008年1月30日 - 版次: 4.0
這篇文章中的資訊適用於:
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 6.0?應用於:
    • Microsoft Windows XP Home Edition
    • Microsoft Windows XP Professional
    • Microsoft Windows XP Media Center Edition
    • Microsoft Windows XP Tablet PC Edition
    • Microsoft Windows 2000 Advanced Server
    • Microsoft Windows 2000 Datacenter Server
    • Microsoft Windows 2000 Professional Edition
    • Microsoft Windows 2000 Server
    • Microsoft Windows NT Server 4.0 Standard Edition
    • Microsoft Windows NT Server 4.0, Terminal Server Edition
    • Microsoft Windows NT Workstation 4.0 Developer Edition
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98 Second Edition
關鍵字:?
kbprb KB329781
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