.NET Core中如何让IIS Express以HTTP1.1模式运行?
让IIS Express强制使用HTTP/1.1的配置方法
你可以通过以下两种方式配置IIS Express,使其强制使用HTTP/1.1(替代默认的HTTP/2):
方法一:修改项目的launchSettings.json(推荐)
- 打开项目根目录下的
Properties/launchSettings.json文件 - 找到
profiles节点下的"IIS Express"配置块,在environmentVariables中添加指定Kestrel协议的环境变量:
"profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_Kestrel__EndpointDefaults__Protocols": "Http1" } } }
该配置会让IIS Express反向代理的后端Kestrel实例强制使用HTTP/1.1,和你直接配置Kestrel的效果完全一致。
方法二:修改IIS Express的applicationhost.config
如果需要全局或站点级的配置,可以修改IIS Express的配置文件:
- 定位配置文件:
- 全局配置:
%USERPROFILE%\Documents\IISExpress\config\applicationhost.config - 项目级配置:项目根目录下的
.vs\config\applicationhost.config(需开启显示隐藏文件夹)
- 全局配置:
- 找到对应站点的
<aspNetCore>节点,添加环境变量配置:
<aspNetCore processPath="dotnet" arguments=".\YourProject.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"> <environmentVariables> <environmentVariable name="ASPNETCORE_Kestrel__EndpointDefaults__Protocols" value="Http1" /> </environmentVariables> </aspNetCore>
配置完成后,重启IIS Express即可生效。
内容的提问来源于stack exchange,提问作者Jan Martin
相关产品推荐
相关产品推荐

