ネットワークのランタイム構成オプション

HTTP/2 プロトコル

  • HTTP/2 プロトコルのサポートを有効にするかどうかを構成します。
  • この設定を省略すると、HTTP/2 プロトコルのサポートが有効になります。 これは、値を true に設定した場合と同じです。
設定の名前 価値観
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false - 無効
true - 有効
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 - 無効
1 - 有効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

HTTP/3 プロトコル

  • .NET 7 以降では、HTTP/3 は既定で有効になっています。
設定の名前 価値観
runtimeconfig.json System.Net.SocketsHttpHandler.Http3Support false -無効
true - 有効
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 0 - 無効
1 - 有効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

HttpClient での SPN の作成 (.NET 6 以降)

  • ヘッダーが存在せず、ターゲットが既定のポートで実行されていない場合、Kerberos および NTLM 認証のHost (SPN) の生成に影響します。
  • .NET 6 以降のバージョンでは、既定では SPN にポートは含まれません。 ただし、動作は構成可能です。
設定の名前 価値観
runtimeconfig.json System.Net.Http.UsePortInSpn true - たとえば、SPN にポート番号を含めます。 HTTP/host:port
false - たとえば、SPN にポートを含めないでください。 HTTP/host
環境変数 DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN 1 - たとえば、SPN にポート番号を含めます。 HTTP/host:port
0 - たとえば、SPN にポートを含めないでください。 HTTP/host

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

マネージド NTLM 認証

Windows以外のプラットフォームでは、システム GSSAPI の実装で NTLM が提供されない場合や、追加のネイティブ NTLM プロバイダーが必要な場合や、互換性の問題が発生する可能性があります。 このオプションは、アプリケーションが既存の NTLM サービスに対して認証を行う必要があり、システム プロバイダーが認証を完了できない場合に true するように設定します。 .NETは、HTTP および SMTP 認証とNegotiateAuthenticationに NTLM と SPNEGO の組み込みのマネージド実装を使用します。

Important

NTLM は従来の認証プロトコルであり、現在の推奨事項を満たしていない暗号化アルゴリズムを使用します。 既存のシステムとの互換性のために必要な場合にのみ、マネージド NTLM を有効にします。 ネゴシエートは、使用可能な場合は Kerberos を優先しますが、NTLM にフォールバックできます。 NTLM を回避するには、サポートされている場合に Kerberos を明示的に要求するか、最新の認証プロトコルを使用します。

設定の名前 価値観
runtimeconfig.json System.Net.Security.UseManagedNtlm false - システム GSSAPI 実装を使用する
true - 組み込みのマネージド NTLM および SPNEGO 実装を使用する

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

HTTP/2 動的ウィンドウスケーリング

  • フロー制御で HTTP/2 動的ウィンドウ スケーリング アルゴリズムを無効にするかどうかを構成します。 アルゴリズムは既定で有効になっています。
  • trueに設定すると、動的ウィンドウ スケーリング アルゴリズムは無効になります。
設定の名前 価値観
runtimeconfig.json System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing false - 有効 (既定値)
true - 無効
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 0 - 有効 (既定値)
1 - 無効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

HTTP/2 ストリーム受信ウィンドウ サイズ

  • HTTP/2 ストリーム受信ウィンドウの最大サイズを構成します。
  • 既定値は 16 MB です。 65,535 未満の値は 65,535 にクランプされます。 ハード上限はありませんが、この設定を既定値を超えて増やすと、スループットが高く、待機時間が長いネットワークでのみ役立ちます。
設定の名前 価値観
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE 整数 (既定値: 16 MB、最小: 65,535)

HTTP/2 ストリーム ウィンドウ スケールのしきい値

  • HTTP/2 ストリーム受信ウィンドウの拡大率を制御する乗数を構成します。 値を大きくすると、ウィンドウが保守的に増加し、ピークスループットが低下します。
  • 既定値は 1.0 です。 0 未満の値は既定値にリセットされます。 ハード上限はありませんが、既定の値を大幅に超えて、要求ごとのスループットが段階的に制限されます。

注

この設定は、高度な診断と内部チューニングを目的としています。 ほとんどの開発者は変更する必要はありません。

設定の名前 価値観
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER Float (既定値: 1.0、最小: 0)

HTTP アクティビティの伝達

分散トレース アクティビティの伝達を HttpClientに対して有効にするかどうかを構成します。 有効にすると、送信 HTTP 要求は、OpenTelemetry などの分散トレース ツールのトレース コンテキスト ヘッダー ( traceparent など) を伝達します。

設定の名前 価値観
runtimeconfig.json System.Net.Http.EnableActivityPropagation true - 有効 (既定値)
false - 無効
環境変数 DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 1 - 有効 (既定値)
0 - 無効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

要求の完了時の保留中の接続タイムアウト

開始 HTTP 要求の完了後に保留中の接続試行を完了するためのタイムアウト (ミリ秒単位) を構成します。 要求が完了した後も接続が確立されている場合、このタイムアウトによって、接続の試行を中止するまでの待機時間が決まります。

  • 既定値は 5000 (5 秒) です。
  • 接続が完了するまで無期限に待機するように -1 に設定します。
  • 要求が完了するとすぐに保留中の接続を取り消すには、 0 に設定します。
  • ハード上限はありませんが、非常に大きな値は実用的ではありません。
設定の名前 価値観
runtimeconfig.json System.Net.SocketsHttpHandler.PendingConnectionTimeoutOnRequestCompletion 整数 (既定値: 5000)
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PENDINGCONNECTIONTIMEOUTONREQUESTCOMPLETION 整数 (既定値: 5000)

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

プロキシの事前認証

有効にすると、SocketsHttpHandlerは、プロキシからのBasicチャレンジ応答を待機するのではなく、最初の要求で407プロキシ認証資格情報を事前に送信します。 これは、チャレンジ応答 407 送信しないプロキシに役立ちます。

設定の名前 価値観
runtimeconfig.json System.Net.Http.SocketsHttpHandler.ProxyPreAuthenticate false - 無効 (既定値)
true - 有効
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PROXYPREAUTHENTICATE 0 - 無効 (既定値)
1 - 有効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

サーバーあたりの最大接続数

1 つのサーバーに対して開 SocketsHttpHandler 同時 TCP 接続の最大数を構成します。 ハンドラーは、 1 未満の値を無視し、既定値を使用します。

  • 既定値は無制限 (int.MaxValue)。
設定の名前 価値観
runtimeconfig.json System.Net.SocketsHttpHandler.MaxConnectionsPerServer 整数 (既定値: 無制限)
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_MAXCONNECTIONSPERSERVER 整数 (既定値: 無制限)

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

ソケットインライン補完

System.Threading.ThreadPoolにディスパッチされるのではなく、イベント スレッドでソケット継続の実行を許可するかどうかを構成します。 この設定を有効にすると、一部のシナリオでパフォーマンスが向上する可能性があります。 ただし、コストのかかる作業で I/O スレッドが必要以上に長く保持されている場合は、パフォーマンスが低下する可能性があります。

注

テストして、この設定を有効にすることで、特定のシナリオでのパフォーマンスが向上することを確認します。

設定の名前 価値観
環境変数 DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS 0 - 無効 (既定値)
1 - 有効

ソケット スレッド数

ソケット I/O に使用されるスレッドの数を構成します。 オーバーライドされない場合、値はプロセッサ数とアーキテクチャに基づいて計算されます。 実際の値は、 [1, ProcessorCount]の範囲内にあります。 この範囲外の値は拒否されませんが、パフォーマンスを向上させる可能性は低くなります。

注

この設定は、極端な負荷のシナリオを対象としています。 ほとんどの開発者は変更する必要はありません。

設定の名前 価値観
環境変数 DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT 整数

IPv6

インターネット プロトコル バージョン 6 (IPv6) を無効にするかどうかを構成します。

設定の名前 価値観
runtimeconfig.json System.Net.DisableIPv6 false - 有効 (既定値)
true - 無効
環境変数 DOTNET_SYSTEM_NET_DISABLEIPV6 0 - 有効 (既定値)
1 - 無効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

TLS セッションの再開

TLS セッションの再開が、 SslStreamの TLS セッション再開を無効にするかどうかを制御します。 セッション再開により、TLS 再接続では、以前にネゴシエートされたセッション パラメーターを再利用して完全なハンドシェイクをスキップできるため、待機時間が短縮されます。

設定の名前 価値観
runtimeconfig.json System.Net.Security.DisableTlsResume false - 有効 (既定値)
true - 無効
環境変数 DOTNET_SYSTEM_NET_SECURITY_DISABLETLSRESUME 0 - 有効 (既定値)
1 - 無効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

サーバー AIA のダウンロード

有効にすると、TLS クライアントは、サーバー証明書の機関情報アクセス (AIA) 拡張機能 URL から中間証明書を自動的にダウンロードします。 これにより、サーバーが完全なチェーンを送信しない場合でも、クライアントは完全な証明書チェーンを構築できます。

設定の名前 価値観
runtimeconfig.json System.Net.Security.EnableServerAiaDownloads false - 無効 (既定値)
true - 有効
環境変数 DOTNET_SYSTEM_NET_SECURITY_ENABLESERVERAIADOWNLOADS 0 - 無効 (既定値)
1 - 有効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

QUIC 構成キャッシュ

MsQuic 構成オブジェクトのキャッシュを無効にします。 有効にすると (既定)、システムは接続間で構成オブジェクトをキャッシュして再利用します。これにより、同じパラメーターを使用して接続を繰り返す場合の TLS と QUIC のセットアップのオーバーヘッドが軽減されます。

設定の名前 価値観
runtimeconfig.json System.Net.Quic.DisableConfigurationCache false - キャッシュが有効 (既定)
true - キャッシュが無効
環境変数 DOTNET_SYSTEM_NET_QUIC_DISABLE_CONFIGURATION_CACHE 0 - キャッシュが有効 (既定)
1 - キャッシュが無効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

アプリローカル MsQuic (Windows)

有効にすると、QUIC 実装では、.NET アセンブリにバンドルされているシステム提供のライブラリではなく、アプリケーション ディレクトリの MsQuic ライブラリが使用されます。

設定の名前 価値観
runtimeconfig.json System.Net.Quic.AppLocalMsQuic false - システム MsQuic を使用する (既定)
true - app-local MsQuic を使用する

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

HttpListener カーネル応答バッファリング (Windows)

有効にすると、 HttpListener は HTTP.sysを介してカーネル内の応答データをバッファーします。 カーネル バッファリングにより、同期 I/O または非同期 I/O を使用するアプリケーションの待機時間の長い接続でスループットが大幅に向上し、一度に最大 1 つの未処理の書き込みが行われます。 複数の未処理の書き込みが同時に実行されるアプリケーションでは、この設定を有効にしないでください。

注

カーネル応答バッファリングを有効にすると、HTTP.sysによって CPU とメモリの使用率が高くなる可能性があります。

設定の名前 価値観
runtimeconfig.json System.Net.HttpListener.EnableKernelResponseBuffering false - 無効 (既定値)
true - 有効

この構成設定には特定の MSBuild プロパティがありません。 ただし、代わりに RuntimeHostConfigurationOption MSBuild 項目を追加することもできます。 属性の値として Include 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。