Ukládání souboru na server pomocí protokolu HTTP trvá velmi dlouho

Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Důležité: Tento článek obsahuje informace o úpravách registru. Dříve než provedete jakékoli úpravy registru, prověřte své schopnosti obnovit jej v případě, že dojde k potížím. Informace, jak zálohovat, obnovit a upravovat registr, naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
256986 Popis registru systému Microsoft Windows
Příznaky
Ukládání několikamegabajtových souborů na server pomocí metody HTTP File Upload trvá velmi dlouho.

Poznámka: Tyto potíže jsou dokumentované ve specifikaci Request For Comment (RFC) 1867, „Form-based File Upload in HTML (Ukládání souborů pomocí formulářů v jazyku HTML)“.
Příčina
K těmto potížím dochází, protože výchozí velikost vyrovnávací paměti rozhraní Winsock pro odesílání je 8 kilobajtů (kB) a proto aplikace Internet Explorer předává data v 8kilobajtových dávkách. V průměrné síti to znamená zhruba 80 kB/s bez ohledu na přenosovou rychlost sítě.

Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
214397 INFO: Potíže s návrhem – Odesílání malých datových segmentů protokolem TCP pomocí rozhraní Winsock
Řešení
K odstranění těchto potíží nakonfigurujte v aplikaci Internet Explorer větší vyrovnávací paměť pro odesílání přes rozhraní Winsock. Tak zvýšíte přenosovou rychlost při použití metody HTTP File Upload. Postupujte podle následujících pokynů:

Upozornění: Nesprávné použití programu Editor registru může způsobit vážné potíže, k jejichž odstranění může být nutné přeinstalovat systém Windows. Společnost Microsoft nezaručuje, že potíže způsobené chybným použitím programu Editor registru mohou být odstraněny. Tento program používáte pouze na vlastní nebezpečí.
  1. Spusťte program Editor registru (Regedt32.exe).
  2. Najděte a poté klepněte na následující klíč registru:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  3. V nabídce Úpravy klepněte na příkaz Přidat hodnotu a poté přidejte následující hodnotu:
    Název hodnoty: SocketSendBufferLength
    Datový typ: REG_DWORD
    Soustava: Desítková
    Údaj hodnoty: Požadovaná velikost vyrovnávací paměti (v bajtech)
    Možné hodnoty velikosti vyrovnávací paměti:
    16 kB = 16384
    24 kB = 24576
    32 kB = 32768
    40 kB = 40960
    48 kB = 49152
    56 kB = 57344
    64 kB = 65536
  4. Ukončete program Editor registru.
Otestujte jednotlivé hodnoty počínaje 16kilobajtovou vyrovnávací pamětí. Jakmile dosáhnete přijatelné přenosové rychlosti, ponechte nastavenou velikost vyrovnávací paměti.
Prohlášení
Toto chování je implementováno úmyslně.
Další informace
Pokud použijete postup popsaný v části „Řešení“ v tomto článku, každý program používající funkci HTTPSendRequest rozhraní WININETAPI (dokumentovanou na webovém serveru Microsoft Developer Network (MSDN)) si vyžádá vyrovnávací paměť pro odesílání přes rozhraní Winsock definovanou v uvedeném klíči registru.

Další informace o funkci HTTPSendRequest naleznete na následující webové stránce služby MSDN:Další informace o chování vyrovnávací paměti pro odesílání přes rozhraní Winsock naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
214397 INFO: Potíže s návrhem – Odesílání datových segmentů protokolem TCP pomocí rozhraní Winsock
Vlastnosti

ID článku: 329781 - Poslední kontrola: 12/07/2015 12:48:36 - Revize: 3.2

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

  • kbnosurvey kbarchive kbprb KB329781
Váš názor