.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. Tomcat最大同時ファイルアップロード数
- 6. 最大および最小日付
- 7. PowerShell、Web要求、およびプロキシ
- 8. HttpClient要求ブラウザのように
- 9. クローム誤読みの最大高さおよび最大幅
- 10. ブラウザでの同時ファイルダウンロードの最大数?
- 11. ThreadPoolExecutor - コアおよび最大プールは
- 12. MySQLへの最大同時接続数
- 13. Jenkins - 同時ジョブの最大数
- 14. ブラウザでの最大同時接続数
- 15. Spring Securityの最大同時ユーザー数
- 16. Chromium同時HTTP接続の最大数
- 17. Azure関数による最大同時実行数の設定
- 18. HttpClient 4.2、基本認証、およびAuthScope
- 19. キャメルキャッシュで最大同時実行要求を設定する方法
- 20. mysqli_use_result()および同時実行
- 21. HazelCast TransactionalMap、および同時スレッドアクセス
- 22. ASP.NETコア最大同時接続数?
- 23. iOS GCD最大同時操作数
- 24. WebClient要求のUser-Agentヘッダーの設定
- 25. IIS7の最大同時HttpRequests
- 26. CUDAのイプシロン、最小および最大定数の検索方法は?
- 27. 日付範囲の最小および最大年の取得
- 28. RPC要求のための非同期および同期インタフェースを作成する必要があります
- 29. 入力された最小、最大、平均、および数字の表示
- 30. ファブリックオブジェクトの最小および最大リサイズ制限
これはどのようにして.netコアで設定できますか? 'ServicePointManager'はもう存在しません –
.NET Core 2.0にServicePointManagerが追加され、HttpClientに直接設定することもできます。私の答えはこちら:https://stackoverflow.com/questions/1361771/max-number-of-concurrent-httpwebrequests/46905342#46905342 – cbp