Hallo,
ich möchte an unseren IIS 8 größere Daten per C#-WebRequest verschicken. Dafür habe ich grob in C#-Sharp folgendes gecodet:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
string postData = Request;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/soap+xml; charset=utf-8";
request.ContentLength = byteArray.Length;
request.KeepAlive = true;
request.Timeout = 5400000; // 90 Minuten, default 100 Sek.
request.Proxy = null;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string result = reader.ReadToEnd();
Wenn mein Übergabewert "postData" aus ein paar Zeichen besteht, dann klappt dies tadellos; sind es allerdings ein paar MB (aktuell 24 zum Testen), dann bricht der Code mit dem Fehler "400 Ungültige Anforderung" ab.
Ich bin zu 100% davon überzeugt, dass dies "nur" n' kleine IIS-Servereinstellung und ich dort in ein Timeout versus Speicherbegrenzung laufe. Folgende Werte habe ich bereits angepasst:
<httpRuntime executionTimeout="5400" maxRequestLength="102400" maxQueryStringLength="102400" />
Trotzdem knallt es - selbst nach einem Neustart. Jemand n' Idee, wo mein Fehlerchen liebt bzw. wo ich als nächstes drauf schauen sollte... bin nämlich aktuell was Ideenlos 😃
DANKE!
Gruß
Stefan
Http 400 kann alles sein. Genaue Fehlermeldung?
Da muss mehr kommen als nur "Invalid Request".
Je nach Security kann es auch an maxAllowedContentLength
liegen.
Edit: grade mit WCF verwechselt. Oder handelt es sich hier um WCF, weil ContentType = SOAP ?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
den Security-Eintrag habe ich auch schon drinnen, hilft aber genauso wenig 😃
<requestLimits maxAllowedContentLength="104857600" />
Jetzt schau ich erstmal, wie ich den IIS dazu motiviert bekomme mir mehr Infos anzuzeigen - weil irgendwie will er das momentan nicht 😃