.NET 环境变量 在本文中,您将了解 .NET SDK、.NET CLI 和 .NET 运行时使用的环境变量。某些环境变量由 .NET 运行时使用,而其他环境变量仅由 .NET SDK 和 .NET CLI 使用。一些环境变量被所有人使用。
.NET 运行时环境变量
DOTNET_SYSTEM_NET_HTTP_*
有几个全局 HTTP 环境变量设置:
DOTNET_SYSTEM_NET_HTTP_ENABLEACTIVITYPROPAGATION
指示是否为全局 HTTP 设置启用诊断处理程序的活动传播。
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2SUPPORT
设置为falseor 时0,禁用 HTTP/2 支持,默认情况下启用。
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP3SUPPORT
设置为true或 时1,启用 HTTP/3 支持,默认情况下禁用。
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_HTTP2FLOWCONTROL_DISABLEDYNAMICWINDOWSIZING
当设置为falseor 时0,覆盖默认值并禁用 HTTP/2 动态窗口缩放算法。
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_MAXSTREAMWINDOWSIZE
默认为 16 MB。覆盖时,HTTP/2 流接收窗口的最大大小不能小于 65,535。
DOTNET_SYSTEM_NET_HTTP_SOCKETSHTTPHANDLER_FLOWCONTROL_STREAMWINDOWSCALETHRESHOLDMULTIPLIER
默认为 1.0。当被覆盖时,更高的值会导致更短的窗口但下载速度更慢。不能小于0。
DOTNET_SYSTEM_GLOBALIZATION_*
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT:请参阅设置不变模式。
DOTNET_SYSTEM_GLOBALIZATION_PREDEFINED_CULTURES_ONLY: 指定是否只加载预定义的文化。
DOTNET_SYSTEM_GLOBALIZATION_APPLOCALICU:指示是否使用应用程序本地Unicode 国际组件(ICU)。有关更多信息,请参阅App-local ICU。
设置不变模式
应用程序可以通过以下任何一种方式启用不变模式:
在项目文件中:
XML
复制
true
在runtimeconfig.json文件中:
JSON
复制
{
"runtimeOptions": {
"configProperties": {
"System.Globalization.Invariant": true
}
}
}
通过将环境变量值设置DOTNET_SYSTEM_GLOBALIZATION_INVARIANT为true或1。
重要的
在项目文件或runtimeconfig.json 中设置的值比环境变量具有更高的优先级。
有关详细信息,请参阅.NET 全球化不变模式。
DOTNET_SYSTEM_GLOBALIZATION_USENLS
这仅适用于 Windows。要使全球化使用国家语言支持 (NLS),请将其设置DOTNET_SYSTEM_GLOBALIZATION_USENLS为true或1。DOTNET_SYSTEM_GLOBALIZATION_USENLS要不使用它,请设置为false或0。
DOTNET_SYSTEM_NET_SOCKETS_*
本节重点介绍两个System.Net.Sockets环境变量:
DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS
DOTNET_SYSTEM_NET_SOCKETS_THREAD_COUNT
套接字延续从事件线程分派到System.Threading.ThreadPool。这避免了阻塞事件处理的延续。要允许继续直接在事件线程上运行,请设置DOTNET_SYSTEM_NET_SOCKETS_INLINE_COMPLETIONS为1. 默认情况下它是禁用的。
笔记
如果有昂贵的工作最终会占用 IO 线程的时间超过所需时间,则此设置会使性能变差。测试以确保此设置有助于提高性能。
使用 TechEmpower 基准测试,在非常高的负载下生成大量小型套接字读取和写入,单个套接字引擎能够 04
|