Senden mehrere WebRequest Parallel.Für
Will ich senden mehrere WebRequest
. Habe ich eine Parallel.For
Schleife, aber die Schleife einmal ausgeführt, und das zweite mal, es gibt Fehler beim erhalten der Antwort.
Fehler:
Der Vorgang hat das Zeitlimit überschritten
Code :
Parallel.For(0, 10, delegate(int i) {
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
new Uri("http://www.mysite.com/service"));
string dataToSend = "Data";
byte[] buffer = System.Text.Encoding.GetEncoding(1252).
GetBytes(dataToSend);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = buffer.Length;
request.Host = "www.mysite.com";
Stream requestStream = request.GetRequestStream();
requestStream.Write(buffer, 0, buffer.Length);
requestStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
});
- Es gibt Ihnen eine Fehlermeldung? Wirklich? Und gibt es eine bestimmte Frage, die Sie gerne stellen würden?
- Und der Fehler ist... ?
- Was ist die Ausnahme, wo tritt es auf? Sind Sie sicher, dass der server nicht eigentlich timing?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich das problem ist, dass Sie aufrufen müssen
response.Close()
nachdem Sie fertig sind die Bearbeitung der Antwort.Zusätzlich zu dem, was Jim Mischel mit ein, sagte über den Aufruf von Close auf die Antwort, müssen Sie auch berücksichtigen, dass, standardmäßig .NET begrenzt eine Anwendung nur zwei aktive HTTP-verbindungen pro domain auf einmal. Um dies zu ändern können Sie festlegen,
System.Net.ServicePointManager.DefaultConnectionLimit
programmgesteuert oder stellen Sie die gleiche Sache über config mit der<system.net><connectionManagement>
Abschnitt "Konfiguration".