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

HTTP/2 プロトコル

  • HTTP/2 プロトコルのサポートを有効にするかどうかを構成します。

  • .NET Core 3.0 で導入されました。

  • .NET Core 3.0 のみ:この設定を省略した場合、HTTP/2 プロトコルのサポートは無効になります。 これは、値を false に設定した場合と同じです。

  • .NET Core 3.1 および .NET 5+:この設定を省略した場合、HTTP/2 プロトコルのサポートは有効になります。 これは、値を true に設定した場合と同じです。

設定の名前
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false - 無効
true - 有効
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 - 無効
1 - 有効

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

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

  • Host ヘッダーが見つからないときにターゲットが既定のポートで実行されていない場合、Kerberos および NTLM 認証のサービス プリンシパル名 (SPN) の生成に影響します。
  • .NET Core 2.x と 3.x には SPN のポートは含まれません。
  • .NET Core 5.x には SPN のポートは含まれません
  • .NET 6 以降のバージョンにはポートは含まれませんが、動作は構成可能です。
設定の名前
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 属性の値として runtimeconfig.json 設定名を使用します。 たとえば、「MSBuild プロパティ」を参照してください。

UseSocketsHttpHandler (.NET Core 2.1-3.1 のみ)

設定の名前
runtimeconfig.json System.Net.Http.UseSocketsHttpHandler true - SocketsHttpHandler の使用を有効にする
false - Windows では WinHttpHandler、Linux では libcurl の使用を有効にする
環境変数 DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER 1 - SocketsHttpHandler の使用を有効にする
0 - Windows では WinHttpHandler、Linux では libcurl の使用を有効にする

注意

.NET 5 以降では、System.Net.Http.UseSocketsHttpHandler 設定は使用できなくなりました。

Latin1 ヘッダー (.NET Core 3.1 のみ)

  • このスイッチによって HTTP ヘッダー検証の緩和が許可され、SocketsHttpHandler では、ISO-8859-1 (Latin-1) でエンコードされた文字をヘッダーで送信できます。

  • この設定を省略した場合、ASCII 以外の文字を送信しようとすると HttpRequestException が発生します。 これは、値を false に設定した場合と同じです。

設定の名前
runtimeconfig.json System.Net.Http.SocketsHttpHandler.AllowLatin1Headers false - 無効
true - 有効
環境変数 DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_ALLOWLATIN1HEADERS 0 - 無効
1 - 有効

注意

このオプションは .NET Core バージョン 3.1 9 以降の 3.1 でのみお使いになれます。それ以前またはそれ以降のバージョンでは利用できません。 .NET 5 では、RequestHeaderEncodingSelector の使用をお勧めします。