ネットワークのランタイム構成オプション
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 のみ)
System.Net.Http.HttpClientHandler が System.Net.Http.SocketsHttpHandler 以前の HTTP プロトコル スタック (Windows と
CurlHandler
では WinHttpHandler、Linux では libcurl の上位に実装された内部クラス) を使用するかどうかを構成します。注意
HttpClientHandler クラスを直接インスタンス化するのではなく、高レベルのネットワーク API を使用している可能性があります。 この設定は、HttpClient や HttpClientFactory などの高レベル ネットワーク API で使用される HTTP プロトコル スタックにも影響します。
この設定を省略した場合、HttpClientHandler では SocketsHttpHandler が使用されます。 これは、値を
true
に設定した場合と同じです。
設定の名前 | 値 | |
---|---|---|
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 の使用をお勧めします。
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示