Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel hilft Ihnen, den Fehler zu beheben (HTTP 500- oder Antwortpuffergrenzwert überschritten), der auftritt, wenn Sie die Response.BinaryWrite
Methode in Active Server Pages (ASP) zum Senden einer Datei verwenden.
Ursprüngliche Produktversion: Internetinformationsdienste, Active Server Pages (ASP)
Ursprüngliche KB-Nummer: 944886
Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
- Sie senden eine Datei von einem Webserver, auf dem Internetinformationsdienste (IIS) installiert ist, an einen Clientcomputer.
- Sie verwenden die
Response.BinaryWrite
Methode, um die Datei an den Clientcomputer zu senden, und dieAspBufferingOn
Eigenschaft ist auf "False" festgelegt.
In diesem Szenario erhalten Sie möglicherweise eine der folgenden Fehlermeldungen auf dem Clientcomputer:
Fehlermeldung 1
HTTP 500 – Interner Serverfehler
Fehlermeldung 2
Antwortobjektfehler 'ASP 0251 : 80004005'
Der Antwortpuffergrenzwert wurde überschritten.
Die Ausführung der ASP-Seite führte dazu, dass der Antwortpuffer den konfigurierten Grenzwert überschreitet.
Darüber hinaus erhalten Sie möglicherweise eine Meldung, die der folgenden in der IIS-Protokolldatei ähnelt:
ASP_0251_:_80004005|Response_Buffer_Limit_Exceeded
Ursache
Dieses Problem tritt auf, da IIS einen standardmäßigen ASP-Antwortpufferwert von 4 MB erzwingt, wenn die ASP-Antwortpufferung deaktiviert ist.
In den meisten Szenarien reicht die 4-MB-Puffergrenze für ASP-Antworten aus, die an Webclients gesendet werden. Wenn dieser Grenzwert nicht ausreicht, verwenden Sie eine der folgenden Methoden.
Auflösung 1: Verringern der Antwortgröße
Um dieses Problem zu beheben, wenn Sie die Response.BinaryWrite
Methode verwenden und die ASP-Pufferung deaktiviert ist, überprüfen Sie, ob die daten, die an den Client zurückgegeben werden, nicht größer als 4 MB sind.
Wenn die Antwort größer als der Standardwert von 4 MB ist, verursacht diese Größe häufig eine schlechte Benutzererfahrung. Der Webbrowser muss die große Antwort über das Netzwerk erhalten. Anschließend muss der Webbrowser eine große HTML-Antwort analysieren und anzeigen.
Lösung 2: Aktivieren der ASP-Antwortpufferung und Erhöhen des Pufferlimits
Sie können die AspBufferingOn
IIS-Metabasiseigenschaft verwenden, um puffern auf Anwendungsebene zu aktivieren oder zu deaktivieren.
Notiz
In IIS können Sie die ASP-Antwortpufferung auf Anwendungsebene aktivieren oder deaktivieren, indem Sie den bufferingOn
Wert im ASP-Abschnitt <System.webserver>
der ApplicationHost.config
Datei oder in der Web.config
Datei verwenden.
Zum Aktivieren oder Deaktivieren der Pufferung auf Seitenebene können Sie die Response.Buffer
Eigenschaft verwenden.
Wenn Sie den Puffergrenzwert erhöhen müssen, wählen Sie einen Puffergrenzwert aus, der die größte bekannte Antwortgröße zulässt. Wenn Sie die größte Antwortgröße im Voraus nicht kennen, können Sie den Puffergrenzwert während des Tests auf einen großen Wert erhöhen. Nachdem Sie den Test abgeschlossen haben, verwenden Sie den größten Wert, der im Feld "sc-bytes " in der IIS-Protokolldatei für die Antwort angezeigt wird, die für die Seite generiert wird.
Führen Sie die folgenden Schritte aus, um den Puffergrenzwert in IIS zu erhöhen:
Wählen Sie "Start" aus, wählen Sie "Ausführen" aus, geben Sie cmd ein, und wählen Sie dann "OK" aus.
Geben Sie den Befehl ein
cd /d %systemdrive%\inetpub\adminscripts
, und wählen Sie dann die EINGABETASTE aus.Geben Sie den Befehl ein
cscript.exe adsutil.vbs SET w3svc/aspbufferinglimit LimitSize
, und wählen Sie dann die EINGABETASTE aus.Notiz
LimitSize
stellt die Größe der Puffergrenze in Byte dar. Beispielsweise legt die Zahl 67108864 die Puffergrenze auf 64 MB fest.
Führen Sie die folgenden Schritte aus, um zu bestätigen, dass der Puffergrenzwert korrekt festgelegt ist:
- Wählen Sie "Start" aus, wählen Sie "Ausführen" aus, geben Sie cmd ein, und wählen Sie dann "OK" aus.
- Geben Sie den Befehl ein
cd /d %systemdrive%\inetpub\adminscripts
, und wählen Sie dann die EINGABETASTE aus. - Geben Sie den Befehl ein
cscript.exe adsutil.vbs GET w3svc/aspbufferinglimit
, und wählen Sie dann die EINGABETASTE aus.
Weitere Informationen
Wenn Sie die Methode verwenden und die Response.BinaryWrite
ASP-Antwortpufferung deaktiviert ist, können Sie nur 4 MB Daten an den Client senden, es sei denn, die Pufferbegrenzungseigenschaft für die Seite ist explizit festgelegt. Standardmäßig beträgt der Wert für die bufferLimit
Eigenschaft in IIS 4.194.304 Byte.
Darüber hinaus schlägt die BinaryWrite()
API fehl, wenn die Antwort auf den Client größer als der Puffergrenzwert ist, obwohl die ASP-Antwortpufferung deaktiviert ist.
Notiz
Es wird empfohlen, die ASP-Antwortpufferung zu aktivieren. Die ASP-Antwortpufferung erhöht die Leistung einer Webanwendung.