Det tar lång tid att överföra filer via HTTP

Den här artikeln har arkiverats. Den erbjuds "i befintligt skick" och kommer inte längre att uppdateras.
VIKTIGT! Den här artikeln innehåller information om hur du redigerar registret. Innan du redigerar registret måste du vara säker på att du kan återställa det om det uppstår något problem. Om du vill veta mer om hur du säkerhetskopierar, återställer och redigerar registret klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
256986 Beskrivning av registret i Microsoft Windows
Symptom
Det kan ta lång tid att överföra filer via HTTP när filerna är flera megabyte stora.

Obs! Detta problem är dokumenterat i RFC 1867 (Request For Comment), "Form-based File Upload in HTML".
Orsak
Problemet beror på att standardbufferten för Winsock-överföring är 8 kilobyte (kB), vilket gör att Internet Explorer tillhandahåller informationen i 8 kB-block. I ett vanligt nätverk motsvarar detta ungefär 80 kB per sekund (kB/s), oavsett nätverkets bandbredd.

Om du vill veta mer klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
214397 INFO: Designproblem - skicka små datasegment via TCP med Winsock (Länken kan leda till en webbplats som är helt eller delvis på engelska)
Lösning
Lös problemet genom att öka överföringsbufferten i Internet Explorer vid kommunikation med Winsock. När du gör det ökas nätverksprestanda när överföring av filer via HTTP används. Gör så här:

VARNING! Om du använder Registereditorn fel kan det medföra att du måste installera om operativsystemet. Microsoft kan inte garantera att du kan lösa problem som uppstår på grund av felaktig användning av Registereditorn. Använd Registereditorn på egen risk.
  1. Starta Registereditorn (Regedt32.exe).
  2. Leta upp och klicka på följande registernyckel:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
  3. Klicka på Lägg till värdeRedigera-menyn, och lägg sedan till följande registervärde:
    Värde: SocketSendBufferLength
    Data: REG_DWORD
    Bas: Decimal
    Data: Önskad buffertstorlek (i byte)
    Alternativ för buffertvärde:
    16 kB buffert = 16384
    24 kB buffert = 24576
    32 kB buffert = 32768
    40 kB buffert = 40960
    48 kB buffert = 49152
    56 kB buffert = 57344
    64 kB buffert = 65536
  4. Avsluta Registereditorn.
Testa alla värden och börja med 16 kB buffert. När du är nöjd med överföringsprestanda väljer du motsvarande buffertvärde.
Status
Detta är avsiktligt.
Mer Information
När du använder metoden som beskrivs i avsnittet "Lösning" i denna artikel kommer alla program där WININETAPI-funktionen HTTPSendRequest används (se följande MSDN-länk), att tilldela och begära en Winsock-överföringsbuffert, enligt registernyckel.

Det finns mer information om HTTPSendRequest-funktionen på följande MSDN-webbplats:Om du vill veta mer om Winsock-överförigsbufferten klickar du på artikelnumret nedan och läser artikeln i Microsoft Knowledge Base:
214397 INFO: Designproblem - skicka datasegment via TCP med Winsock (Länken kan leda till en webbplats som är helt eller delvis på engelska)
Egenskaper

Artikel-id: 329781 – senaste granskning 12/07/2015 12:48:44 – revision: 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

  • kbnosurvey kbarchive kbprb KB329781
Feedback