Warum tritt beim Hochladen großer Dateien in IIS7 Server ein WordPress-HTTP-FEHLER auf?

Lesezeit: 3 Minuten

Benutzer-Avatar
vico

Ich habe ein Windows 2012 R2 Server läuft PHP7.1 Hosting a WordPress an IIS7

Die Standard-Uploadgröße für die WordPress-Medienbibliothek war 2MBkonnte ich dies über ändern php.ini zu 512 MB. Aber beim Hochladen großer Dateien, insbesondere über etwa 70 MB, beginnt der Upload und pausiert dann und hängt in der Mitte. Nach dem Server-Timeout erhalte ich dann den WordPress-HTTP-Fehler.
net::ERR_CONNECTION_RESET auf der Inspektionskonsole.

Diese Zeitüberschreitung tritt im Bereich von 10 bis 20 Sekunden nach dem Start des Uploads auf, und in einer anderen Produktionsumgebung geschieht dies sofort.

Wordpress-Fehler
Konsolenfehler

Ich habe viel gesucht und eine neue Umgebung mit einem neuen WordPress auf einem Windows-Setup erstellt, bin aber auf dasselbe Problem auf einem Windows 2007 SP2-Setup gestoßen.

Inside wp-config.php

@ini_set( 'upload_max_size' , '512M' );
@ini_set( 'post_max_size', '512M' );
@ini_set( 'memory_limit', '1024M' );
@ini_set( 'max_execution_time', '300' );

inside web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="1048576" requestLengthDiskThreshold="1048576"/>
    <identity impersonate="true"/>
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1073741824"></requestLimits>
      </requestFiltering>
    </security>
    <rewrite>
      <rules/>
    </rewrite>
  </system.webServer>
</configuration>

inside php.ini

upload_max_filesize = 512M
post_max_size = 512M
memory_limit = 1024M
max_execution_time = 300

in der IIS-Systemsteuerung
Erweiterte Einstellungen der Site-Anwendung

Nicht sicher, was sonst getan werden kann, um dies zu beheben. Der Fehler tritt bei einer einfachen WordPress-Installation mit dem Basisthema auf.

  • Hast du versucht deinen Cache zu löschen? Weitere Informationen finden Sie in dieser Antwort:

    – Abdusch Samad Miah

    13. Dezember 2017 um 10:09 Uhr

  • @AbdushSamadMiah Cache? Warum würde der Cache das verursachen? Ich habe die Maschine ein paar Mal neu gestartet.

    – Vico

    13. Dezember 2017 um 20:19 Uhr


  • Könnten Sie bitte den Fehlercode (404 ?) Mit seinem iis-Substatus zurückgeben?

    – Oulalahakabu

    14. Dezember 2017 um 11:17 Uhr

  • Versuchen Sie die Einstellung post_max_size größer als der Upload, wenn Sie oder ein Benutzer eine 512-MB-Datei hochladen, gibt es keinen Platz für andere Formularinformationen, also stelle ich normalerweise ein, dass sie 2 oder 5 MB höher ist als die maximale Post-Größengrenze, aber das wird Ihr Problem nicht ein bisschen lösen von Ratschlägen. Was wird, ist, dass IIS eine eigene Dateigrößenbeschränkung hat, bevor PHP beim Checkout startet ajaxuploader.com/large-file-upload-iis-asp-net.htm

    – Barkermn01

    18. Dezember 2017 um 13:51 Uhr


  • @MartinBarker Das Problem ist, dass Fehler viel früher auftreten, als überhaupt eine Obergrenze erreicht wird.

    – Vico

    18. Dezember 2017 um 16:23 Uhr

Benutzer-Avatar
Dan

Dies könnte ein langer Schuss sein, aber so etwas ist uns passiert (Windows mit IIS, auf dem PHP ausgeführt wird). Es hat ewig gedauert, bis ich es herausgefunden habe, und ich konnte es nicht glauben, als ich es gefunden habe.

Versuchen Sie dennoch, Ihr temporäres Windows-Verzeichnis (C:\Windows\Temp) zu löschen. PHP speichert dort Sitzungsdateien, die oft nicht gelöscht werden. Wenn sie zu viele werden, kann dies zu dem von Ihnen beschriebenen Problem führen. Keine Garantie natürlich, aber einen Versuch wert.

Benutzer-Avatar
Barkermn01

Dies wird durch die Tatsache verursacht, dass der IIS-Webserver seine eigene Upload-/Inhaltsgrößenbeschränkung hat, bevor PHP für die Verbindung aktiviert wird, sodass die Einstellung des PHP-Zeugs es für PHP, aber nicht für IIS steuert.

Sie können darüber lesen und wie man es repariert http://ajaxuploader.com/large-file-upload-iis-asp-net.htm

Die Liste davon ist hinzufügen

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="536870912" />
    </requestFiltering>
  </security>
</system.webServer>

Zu einer web.config im öffentlichen oder Stammverzeichnis Ihrer Website. Bei dem die maxAllowedContentLength Das Attribut ist die Anzahl der Bytes Ihrer „post_max_size“ im Fall von 512 MB (512*1024*1024) = 536870912

  • Haben Sie IIS seit dem Einfügen all dieser Änderungen neu gestartet, und ich meine nicht die Website, sondern den globalen IIS-Dienst?

    – Barkermn01

    18. Dezember 2017 um 16:36 Uhr

  • Ja, ich habe die Maschine sogar neu gestartet.

    – Vico

    18. Dezember 2017 um 17:48 Uhr

1334540cookie-checkWarum tritt beim Hochladen großer Dateien in IIS7 Server ein WordPress-HTTP-FEHLER auf?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy