web.config是否指定.NET运行时目标版本对站点运行的影响咨询
.NET Framework 运行版本相关问题解答
问题1:未指定运行时目标版本时的实际运行版本
首先明确基础规则:IIS应用程序池显示的v4.0是CLR版本号,.NET Framework 4.x全系列(4.0/4.5/4.5.1/4.6/4.6.1等)均基于CLR 4.0运行。
现有配置下,站点会直接运行在环境已安装的最高级.NET Framework版本,也就是4.6.1。因为web.config没有显式指定<supportedRuntime>或<httpRuntime targetFramework>配置时,CLR会自动加载当前环境中安装的最新版4.x Framework运行时。
问题2:web.config指定不同目标版本的运行效果
通常指定运行时目标版本是指在web.config中配置<httpRuntime targetFramework="x.x.x"或<supportedRuntime>节点,两种配置核心逻辑一致,运行效果如下:
- 指定目标版本为4.0
站点会以.NET Framework 4.0的兼容模式运行,所有高于4.0版本新增的API、运行时特性(比如4.5新增的async/await默认上下文优化、4.6新增的RyuJIT编译器等)都会被禁用,运行时行为完全对齐.NET Framework 4.0,实际底层还是使用已安装的4.6.1版本CLR,仅开启了兼容开关。 - 指定目标版本为4.5.1
站点会启用.NET Framework 4.0到4.5.1之间的所有新增特性和API,高于4.5.1版本的特性(比如4.6新增的字符串插值底层优化、默认TLS 1.2支持等)会被禁用,运行时行为对齐4.5.1版本。 - 指定目标版本为4.6.1
站点会启用.NET Framework 4.6.1的所有原生特性和API,没有兼容层的额外性能损耗,是当前环境下的最优配置。
补充注意:如果指定的目标版本在当前服务器环境中未安装,站点会直接抛出启动错误,无法正常运行。
内容的提问来源于stack exchange,提问作者variable
相关产品推荐
相关产品推荐

