Abrufen von 413-Fehlern in IIS bei gleichzeitigen Sitzungen mit demselben HTTPS-Clientzertifikat
Ich habe folgendes Problem.
Ich hoste eine WCF-Anwendung auf IIS 8, die akzeptiertnur HTTPS-Anforderungen mit Client-Zertifikaten. Dieser Dienst akzeptiert POST-Nachrichten, deren Größe variieren kann (von einigen Bytes bis zu 1 GB) und die die meiste Zeit parallel empfangen werden.
Die Clients erhalten im folgenden Fall eine zu große Antwort auf die 413 Request-Entität:
Wenn mehrere Verbindungen mit dem geöffnet werdengleich Client-Zertifikat und viele kleine Dateien werden hochgeladen. In diesem Fall ist eine Anforderung erfolgreich und alle anderen schlagen mit dem Fehler 413 fehl.Das Problem könnte durch Einstellen der gelöst werdenuploadReadAheadSize
Wert auf einen größeren Wert als die Summe aller parallelen Anrufgrößen in dersystem.webServer/serverRuntime
Dies führt jedoch dazu, dass der Server für jeden Aufruf die gesamte Speichermenge für den Vorauslesepuffer zuweist, wodurch der Server bei vielen gleichzeitigen Aufrufen über genügend Speicher verfügt.
Meine Konfigurationfunktioniert wenn die anrufe mit getätigt werdenanders Client-Zertifikate oder im Falle des Uploads einer großen Datei.
Ich habe gelesen, dass es mit IIS 6 eine Option zum Festlegen gabSSLAlwaysNegoClientCert
in der Konfiguration, um einen ähnlichen Fehler zu beheben. Ich habe versuchtProblemumgehungen um diesen Wert festzulegen, war jedoch mit IIS 8.0 nicht erfolgreich. Ich habe auch versucht, den SSL-Client-Cache zu deaktivieren, um die Wiederaufnahme der SSL-Sitzung zu deaktivieren, aber das hat mein Problem auch nicht gelöst.
Was können die 413 Fehler verursachen? Gibt es eine Möglichkeit, mehrere parallele Uploads mit einem Clientzertifikat auf denselben Server zu ermöglichen, ohne den gesamten Arbeitsspeicher des Servers zu nutzen?