.NET 4.5でWebClient、HttpWebRequest、およびHttpClientクラスを使用して送信できる並行/並列要求の数に制限はありますか。または、Web APIまたはサーバーに制限がない場合、無制限の並列要求を送信できるのでしょうか? 申し訳ありませんが質問が広すぎる場合は、私はそれを絞り込むことができます私を修正してください。WebClient、HttpWebRequest、およびHttpClientの最大同時要求数
答えて
はい、制限があります。デフォルトの接続制限は、リモートホストあたり2つの同時接続です。これは無効にすることができます。たとえば、ASP.NETは既定でリモートホストごとに10の接続に既定を上書きすると考えています。
https://msdn.microsoft.com/en-us/library/7af54za5.aspxから:クライアントとサーバー間の接続の数は、アプリケーションのスループットに 劇的な影響を与える可能性があり
。既定では、HttpWebRequestクラスを使用するアプリケーション は、特定のサーバーへの接続を最大2つの永続的な 接続を使用しますが、アプリケーションごとに最大接続数を に設定できます。
自分で接続制限を変更するには、ServicePointManager.DefaultConnectionLimit
を使用します。リモートホストへのHTTP接続を開始する前に、プロセスの起動後すぐにこれを変更してください。これは、実際にリモートホストへのHTTP接続を確立すると、現在のデフォルトの接続制限を使用してそのリモートホストに対してServicePoint
が作成されるためです。
同時接続には、HTTPクライアントクラス以外の有効な制限があります。たとえば、100万の同時接続を開こうとすると、RAM、スレッド、またはその他のOSリソースが不足する可能性があります。これらの限界にぶつかっているなら、.netプロセスをスケールアップして多くの同時I/Oを処理する方法について、より一般的な質問をする必要があります。しかし、数十の接続を開いているだけなら、大丈夫です。
なぜ、デフォルトの制限がそれほど低いのか不思議であれば、実際にはHTTP仕様に組み込まれています。目標は、利己的なHTTPクライアントがHTTPサーバを同時に接続していないことを保証することでした。現代のブラウザは仕様を無視していますが。あなたが今まで知りたいと思っていたよりも、このトピックに関する詳細については、http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/を参照してください!
- 1. フラスココンテキスト(アプリケーションおよび要求)
- 2. WebClientの要求タイムアウト
- 3. はHttpClientをHttpWebRequestの対パフォーマンスとセキュリティ、および以下の接続
- 4. 同時HttpWebRequestsの最大数
- 5. HttpInterceptor + Angular 5およびHttpClient
- 6. Tomcat最大同時ファイルアップロード数
- 7. 最大および最小日付
- 8. は、サーバー要求に対して非同期にXmlHttpRequestのを使用して、最大同時要求が
- 9. PowerShell、Web要求、およびプロキシ
- 10. クローム誤読みの最大高さおよび最大幅
- 11. HttpClient要求ブラウザのように
- 12. Xamarinフォーム、AndroidおよびHttpClientの問題
- 13. ThreadPoolExecutor - コアおよび最大プールは
- 14. Owinの同時リクエストの最大数
- 15. ブラウザでの同時ファイルダウンロードの最大数?
- 16. ブラウザでの最大同時接続数
- 17. Jenkins - 同時ジョブの最大数
- 18. MySQLへの最大同時接続数
- 19. Spring Securityの最大同時ユーザー数
- 20. NSURLSessionとの同時ダウンロード最大ホスト数
- 21. Chromium同時HTTP接続の最大数
- 22. Azure関数による最大同時実行数の設定
- 23. HttpClient 4.2、基本認証、およびAuthScope
- 24. キャメルキャッシュで最大同時実行要求を設定する方法
- 25. mysqli_use_result()および同時実行
- 26. ES6 - 収量およびリターン同時に
- 27. HazelCast TransactionalMap、および同時スレッドアクセス
- 28. ASP.NETコア最大同時接続数?
- 29. iOS GCD最大同時操作数
- 30. WebClient要求のUser-Agentヘッダーの設定
これはどのようにして.netコアで設定できますか? 'ServicePointManager'はもう存在しません –
.NET Core 2.0にServicePointManagerが追加され、HttpClientに直接設定することもできます。私の答えはこちら:https://stackoverflow.com/questions/1361771/max-number-of-concurrent-httpwebrequests/46905342#46905342 – cbp