Bagikan melalui


Opsi konfigurasi runtime untuk jaringan

Protokol HTTP/2

  • Mengonfigurasi apakah dukungan untuk protokol HTTP/2 diaktifkan.
  • Jika Anda menghilangkan pengaturan ini, dukungan untuk protokol HTTP/2 diaktifkan. Ini sama dengan mengatur nilai ke true.
Nama setelan Nilai
runtimeconfig.json System.Net.Http.SocketsHttpHandler.Http2Support false - dinonaktifkan
true - diaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT 0 - dinonaktifkan
1 - diaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Protokol HTTP/3

  • Mulai dari .NET 7, HTTP/3 diaktifkan secara default.
Nama setelan Nilai
runtimeconfig.json System.Net.SocketsHttpHandler.Http3Support false -Tamu penyandang cacat
true - diaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT 0 - dinonaktifkan
1 - diaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Pembuatan SPN di HttpClient (.NET 6 dan yang lebih baru)

  • Berdampak pada pembuatan nama perwakilan layanan (SPN) untuk autentikasi Kerberos dan NTLM saat Host header hilang dan target tidak berjalan pada port default.
  • .NET 6 dan versi yang lebih baru tidak menyertakan port dalam SPN secara default. Namun, perilaku dapat dikonfigurasi.
Nama setelan Nilai
runtimeconfig.json System.Net.Http.UsePortInSpn true - sertakan nomor port di SPN, misalnya, HTTP/host:port
false - jangan sertakan port di SPN, misalnya, HTTP/host
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_USEPORTINSPN 1 - sertakan nomor port di SPN, misalnya, HTTP/host:port
0 - jangan sertakan port di SPN, misalnya, HTTP/host

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Penskalakan jendela dinamis HTTP/2

  • Mengonfigurasi apakah algoritma penskalaan jendela dinamis HTTP/2 dinonaktifkan untuk kontrol alur. Algoritma diaktifkan secara default.
  • Saat diatur ke true, algoritma penskalakan jendela dinamis dinonaktifkan.
Nama setelan Nilai
runtimeconfig.json System.Net.SocketsHttpHandler.Http2FlowControl.DisableDynamicWindowSizing false - diaktifkan (default)
true - dinonaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING 0 - diaktifkan (default)
1 - dinonaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Ukuran jendela penerima aliran HTTP/2

  • Mengonfigurasi ukuran maksimum jendela penerima aliran HTTP/2.
  • Men-default-kan ke 16 MB. Nilai di bawah 65.535 dijepit menjadi 65.535. Tidak ada batas atas yang keras, tetapi meningkatkan pengaturan ini di luar default hanya bermanfaat pada jaringan yang merupakan throughput tinggi dan latensi tinggi.
Nama setelan Nilai
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE Bilangan bulat (default: 16 MB; minimum: 65.535)

Ambang batas skala jendela aliran HTTP/2

  • Mengonfigurasi pengali yang mengontrol seberapa agresif jendela penerima aliran HTTP/2 tumbuh. Nilai yang lebih tinggi menghasilkan pertumbuhan jendela yang lebih konservatif, yang mengurangi throughput puncak.
  • Default ke 1.0. Nilai di bawah 0 diatur ulang ke default. Tidak ada batas atas yang keras, tetapi nilai jauh di atas throughput per permintaan batas default secara progresif.

Nota

Pengaturan ini ditujukan untuk diagnostik tingkat lanjut dan penyetelan internal. Sebagian besar pengembang tidak perlu mengubahnya.

Nama setelan Nilai
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER Float (default: 1.0; minimum: 0)

Penyebaran aktivitas HTTP

Mengonfigurasi apakah penyebaran aktivitas pelacakan terdistribusi diaktifkan untuk HttpClient. Saat diaktifkan, permintaan HTTP keluar menyebarluaskan header konteks pelacakan (seperti traceparent) untuk alat pelacakan terdistribusi seperti OpenTelemetry.

Nama setelan Nilai
runtimeconfig.json System.Net.Http.EnableActivityPropagation true - diaktifkan (default)
false - dinonaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION 1 - diaktifkan (default)
0 - dinonaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Batas waktu koneksi tertunda pada penyelesaian permintaan

Mengonfigurasi batas waktu (dalam milidetik) untuk menyelesaikan upaya koneksi yang tertunda setelah permintaan HTTP dimulai selesai. Ketika koneksi masih dibuat setelah permintaan selesai, batas waktu ini menentukan berapa lama untuk menunggu sebelum meninggalkan upaya koneksi.

  • Default ke 5000 (5 detik).
  • Atur ke -1 untuk menunggu tanpa batas waktu hingga koneksi selesai.
  • Atur ke 0 untuk segera membatalkan koneksi yang tertunda saat permintaan selesai.
  • Tidak ada batas atas yang keras, tetapi nilai yang sangat besar tidak praktis.
Nama setelan Nilai
runtimeconfig.json System.Net.SocketsHttpHandler.PendingConnectionTimeoutOnRequestCompletion Bilangan bulat (default: 5000)
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PENDINGCONNECTIONTIMEOUTONREQUESTCOMPLETION Bilangan bulat (default: 5000)

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Pra-autentikasi proksi

Saat diaktifkan, SocketsHttpHandler secara proaktif mengirim Basic kredensial autentikasi proksi pada permintaan pertama alih-alih menunggu 407 respons tantangan dari proksi. Ini berguna untuk proksi yang tidak mengirim 407 respons tantangan.

Nama setelan Nilai
runtimeconfig.json System.Net.Http.SocketsHttpHandler.ProxyPreAuthenticate false - dinonaktifkan (default)
true - diaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_PROXYPREAUTHENTICATE 0 - dinonaktifkan (default)
1 - diaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Koneksi maksimum per server

Mengonfigurasi jumlah maksimum koneksi TCP simultan yang SocketsHttpHandler terbuka ke satu server. Handler mengabaikan nilai kurang dari 1 dan menggunakan default.

  • Default ke tidak terbatas (int.MaxValue).
Nama setelan Nilai
runtimeconfig.json System.Net.SocketsHttpHandler.MaxConnectionsPerServer Bilangan bulat (default: tidak terbatas)
Variabel lingkungan DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_MAXCONNECTIONSPERSERVER Bilangan bulat (default: tidak terbatas)

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Penyelesaian sebaris soket

Mengonfigurasi apakah kelanjutan soket diizinkan untuk berjalan pada utas peristiwa alih-alih dikirim ke System.Threading.ThreadPool. Mengaktifkan pengaturan ini dapat meningkatkan performa dalam beberapa skenario. Namun, itu mungkin menurunkan performa jika pekerjaan mahal memegang utas I/O lebih lama dari yang diperlukan.

Nota

Uji untuk memastikan mengaktifkan pengaturan ini membantu performa dalam skenario spesifik Anda.

Nama setelan Nilai
Variabel lingkungan DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS 0 - dinonaktifkan (default)
1 - diaktifkan

Jumlah utas soket

Mengonfigurasi jumlah utas yang digunakan untuk I/O soket. Ketika tidak ditimpa, nilai dihitung berdasarkan jumlah prosesor dan arsitektur. Nilai praktis berada dalam rentang [1, ProcessorCount]. Nilai di luar rentang ini tidak ditolak tetapi tidak mungkin meningkatkan performa.

Nota

Pengaturan ini ditujukan untuk skenario beban ekstrem. Sebagian besar pengembang tidak perlu mengubahnya.

Nama setelan Nilai
Variabel lingkungan DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT Integer

IPv6

Mengonfigurasi apakah Protokol Internet versi 6 (IPv6) dinonaktifkan.

Nama setelan Nilai
runtimeconfig.json System.Net.DisableIPv6 false - diaktifkan (default)
true - dinonaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_DISABLEIPV6 0 - diaktifkan (default)
1 - dinonaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Dimulainya kembali sesi TLS

Mengontrol apakah dimulainya kembali sesi TLS menonaktifkan dimulainya kembali sesi TLS untuk SslStream. Dimulainya kembali sesi memungkinkan koneksi ulang TLS untuk melewati jabat tangan penuh dengan menggunakan kembali parameter sesi yang dinegosiasikan sebelumnya, yang mengurangi latensi.

Nama setelan Nilai
runtimeconfig.json System.Net.Security.DisableTlsResume false - diaktifkan (default)
true - dinonaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_SECURITY_DISABLETLSRESUME 0 - diaktifkan (default)
1 - dinonaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Unduhan AIA server

Saat diaktifkan, klien TLS secara otomatis mengunduh sertifikat perantara dari URL ekstensi Authority Information Access (AIA) dalam sertifikat server. Ini memungkinkan klien untuk membangun rantai sertifikat lengkap bahkan ketika server tidak mengirim rantai penuh.

Nama setelan Nilai
runtimeconfig.json System.Net.Security.EnableServerAiaDownloads false - dinonaktifkan (default)
true - diaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_SECURITY_ENABLESERVERAIADOWNLOADS 0 - dinonaktifkan (default)
1 - diaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Penembolokan konfigurasi QUIC

Menonaktifkan penembolokan objek konfigurasi MsQuic. Saat diaktifkan (default), sistem menyimpan dan menggunakan kembali objek konfigurasi di seluruh koneksi, yang mengurangi overhead penyiapan TLS dan QUIC untuk koneksi berulang dengan parameter yang sama.

Nama setelan Nilai
runtimeconfig.json System.Net.Quic.DisableConfigurationCache false - penembolokan diaktifkan (default)
true - penembolokan dinonaktifkan
Variabel lingkungan DOTNET_SYSTEM_NET_QUIC_DISABLE_CONFIGURATION_CACHE 0 - penembolokan diaktifkan (default)
1 - penembolokan dinonaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

MsQuic lokal aplikasi (Windows)

Ketika diaktifkan, implementasi QUIC menggunakan pustaka MsQuic dari direktori aplikasi alih-alih pustaka yang disediakan sistem yang dibundel dengan rakitan .NET.

Nama setelan Nilai
runtimeconfig.json System.Net.Quic.AppLocalMsQuic false - gunakan sistem MsQuic (default)
true - gunakan MsQuic lokal aplikasi

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.

Buffering respons kernel HttpListener (Windows)

Saat diaktifkan, HttpListener buffer menanggapi data di kernel melalui HTTP.sys. Buffering kernel dapat secara signifikan meningkatkan throughput melalui koneksi latensi tinggi untuk aplikasi yang menggunakan I/O sinkron atau I/O asinkron dengan paling banyak satu tulisan yang luar biasa pada satu waktu. Jangan aktifkan pengaturan ini untuk aplikasi dengan beberapa penulisan yang luar biasa bersamaan.

Nota

Mengaktifkan buffering respons kernel dapat mengakibatkan penggunaan CPU dan memori yang lebih tinggi dengan HTTP.sys.

Nama setelan Nilai
runtimeconfig.json System.Net.HttpListener.EnableKernelResponseBuffering false - dinonaktifkan (default)
true - diaktifkan

Pengaturan konfigurasi ini tidak memiliki properti MSBuild tertentu. Namun, Anda dapat menambahkan RuntimeHostConfigurationOption item MSBuild sebagai gantinya. Gunakan nama pengaturan runtimeconfig.json sebagai nilai Include atribut . Misalnya, lihat properti MSBuild.