次の推奨事項は、 System.Net に含まれるクラスを最大限に活用するのに役立ちます。
トランスポート層セキュリティ (TLS) のベスト プラクティスについては、「 .NET Framework でのトランスポート層セキュリティ (TLS) のベスト プラクティス」を参照してください。
HttpClientを使用して、.NET 6 で廃止されたWebRequestではなく HTTP 要求を送信します。 .NET Framework で、要求を送信する必要があるたびに新しい
HttpClient
インスタンスを作成します。 (.NET 5+/.NET Core のガイダンスは、より微妙です。詳細については、「 HttpClient を使用するためのガイドライン」を参照してください)。System.Net
クラスを使用してサーバー上で実行される ASP.NET アプリケーションを記述する場合、パフォーマンスの観点から、SendAsyncの代わりに非同期メソッド Sendを使用する方が良いことがよくあります。インターネット リソースに対して開かれた接続の数は、ネットワークのパフォーマンスとスループットに大きな影響を与える可能性があります。 System.Net では、既定でホストごとにアプリケーションごとに 2 つの接続が使用されます。 アプリケーションのConnectionLimitで ServicePoint プロパティを設定すると、特定のホストに対してこの数が増える可能性があります。 ServicePointManager.DefaultPersistentConnectionLimit プロパティを設定すると、すべてのホストでこの既定値を増やすことができます。
ソケット レベルのプロトコルを記述するときは、TcpClientに直接書き込む代わりに、可能な限りUdpClientまたはSocketを使用してください。 これら 2 つのクライアント クラスは、接続の詳細を処理する必要なく、TCP ソケットと UDP ソケットの作成をカプセル化します。
資格情報を必要とするサイトにアクセスする場合は、 CredentialCache クラスを使用して、すべての要求で資格情報を指定するのではなく、資格情報のキャッシュを作成します。 CredentialCache クラスは、キャッシュを検索して要求で提示する適切な資格情報を見つけ、URL に基づいて資格情報を作成および提示する責任を軽減します。
こちらも参照ください
.NET