Gibt es eine Grenze für die Anzahl gleichzeitiger/paralleler Anforderungen, die Sie mit der Klasse WebClient, HttpWebRequest und HttpClient in .NET 4.5 senden können? Oder können Sie unbegrenzte parallele Anfragen senden, wenn die Web-API oder der Server nicht eingeschränkt ist? Sorry, wenn die Frage zu weit gefasst ist, korrigiere mich bitte, damit ich sie eingrenzen kann.Maximale Anzahl gleichzeitig ablaufender Anforderungen für WebClient, HttpWebRequest und HttpClient
Maximale Anzahl gleichzeitig ablaufender Anforderungen für WebClient, HttpWebRequest und HttpClient
Antwort
Ja, es gibt ein Limit. Das Standardverbindungslimit ist 2 gleichzeitige Verbindungen pro Remote-Host. Dies kann überschrieben werden. Ich glaube beispielsweise, dass ASP.NET standardmäßig den Standardwert von 10 Verbindungen pro Remote-Host überschreibt.
Von https://msdn.microsoft.com/en-us/library/7af54za5.aspx:
Die Anzahl der Verbindungen zwischen einem Client und Server kann eine dramatische Auswirkungen auf die Anwendungsdurchsatz haben. Standardmäßig verwendet eine Anwendung mit der HttpWebRequest-Klasse maximal zwei persistente -Verbindungen zu einem bestimmten Server. Sie können jedoch die maximale Anzahl von -Verbindungen pro Anwendung festlegen.
Um die Verbindungsbeschränkung selbst zu ändern, verwenden Sie . Stellen Sie sicher, dass sich diese Änderung kurz nach dem Start Ihres Prozesses ändert, bevor Sie mit dem Herstellen einer HTTP-Verbindung zum Remote-Host beginnen. Dies liegt daran, dass, sobald Sie tatsächlich eine HTTP-Verbindung zu einem Remote-Host hergestellt haben, für diesen Remote-Host unter Verwendung des aktuellen Standardverbindungslimits eine ServicePoint
erstellt wird.
Beachten Sie, dass es weitere wirksame Beschränkungen für gleichzeitige Verbindungen gibt, die über die Anforderungen der HTTP-Clientklassen hinausgehen. Wenn Sie beispielsweise eine Million gleichzeitiger Verbindungen öffnen möchten, haben Sie wahrscheinlich nicht genügend Arbeitsspeicher oder Threads oder eine andere Betriebssystemressource. Wenn Sie gegen diese Grenzen stoßen, müssen Sie eine allgemeinere Frage stellen, wie Sie einen .net-Prozess für die Verarbeitung einer großen Anzahl gleichzeitiger E/A-Vorgänge skalieren können. Aber wenn Sie nur ein paar Dutzend Verbindungen öffnen, dann sollte es Ihnen gut gehen.
BTW, wenn Sie neugierig sind, warum die Standardgrenzwerte so niedrig sind, ist es tatsächlich in der HTTP-Spezifikation gebacken - das Ziel war sicherzustellen, dass egoistische HTTP-Clients HTTP-Server mit simultanen Verbindungen nicht überfluteten. Obwohl moderne Browser die Spezifikation ignorieren. Siehe http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/ für viel mehr Details zu diesem Thema, als Sie jemals wissen wollten!
- 1. MonoDroid HttpWebRequest und WebClient unzuverlässig?
- 2. Convert WebClient in HttpClient
- 3. Ist HttpWebRequest oder Webclient schneller
- 4. Maximale Anforderungen in IIS
- 5. Äquivalent von .NET WebClient und HttpWebRequest in Java?
- 6. Maximale Anzahl an ReceiveMessage-Anforderungen für eine Nachricht in SQS
- 7. Was ist der beste Ansatz für eine große Anzahl gleichzeitig ablaufender Zuordnungen?
- 8. Httpclient vs HttpWebRequest für eine bessere Leistung und Sicherheit und weniger Verbindungen
- 9. HttpWebRequest Vs WebClient-Klasse, die besser ist
- 10. Laravel Handover Anforderungen gleichzeitig
- 11. Maximale Anforderungen für Google Maps API?
- 12. .NET HttpWebRequest Timeout tötet alle zukünftigen Anforderungen?
- 13. WebClient (.net 4.6) zu HttpClient (.net Kern)
- 14. Kann HttpClient gleichzeitig verwendet werden?
- 15. Führt WebDriver eine maximale Anzahl von Treibern gleichzeitig aus?
- 16. Maximale Anzahl der Verbindungen
- 17. maximale Anzahl, wenn Anfragen per TCP-Verbindung
- 18. HttpClient Caching Anforderungen an die gleiche URL
- 19. StackExchange.Redis Timeout für hohe Anzahl von Anforderungen
- 20. So schreiben Sie gleichzeitig REST-Anforderungen Zähler
- 21. Senden von HTTP-Anfragen mit C# HttpWebRequest oder WebClient?
- 22. Welches ist die maximale Anzahl gleichzeitiger Windows TCP/IP-Verbindungen?
- 23. WebClient-Alternative für Windows 8?
- 24. maximale Anzahl von contact_id
- 25. Saber PCC/Ipcc maximale Länge Zeichen & Anforderungen
- 26. Maximale Anzahl der Eingabedatei für Ghostscript (GS)
- 27. maximale Anzahl gleichzeitiger Benutzer für xampp in Windows
- 28. Die maximale Anzahl der Tabellen für sqlite3
- 29. Maximale Anzahl von UILocalNotification für iPhone
- 30. Maximale Anzahl Zeilen für einen ListView setzen
Wie können wir dies in .net-Core konfigurieren? 'ServicePointManager' ist kein Ding mehr –
.NET Core 2.0 hat jetzt ServicePointManager, und Sie können es auch direkt auf HttpClient setzen. Siehe meine Antwort hier: https://stackoverflow.com/questions/1361771/max-number-of-concurrent-httpwebrequests/46905342#46905342 – cbp