Kestrel:已删除默认 HTTPS 绑定
已从 .NET 7 的 Kestrel 中删除默认 HTTPS 地址和端口。 此变更是 dotnet/aspnetcore#42016 的一部分,这将改善处理 HTTPS 时的整体开发人员体验。
引入的版本
ASP.NET Core 7.0
旧行为
以前,如果未显式指定地址和端口的值,但本地开发证书可用,则 Kestrel 默认绑定到 http://localhost:5000
和 https://localhost:5001
。
新行为
用户现在必须手动绑定到 HTTPS,并通过以下方法之一显式指定地址和端口:
- launchSettings.json 文件
ASPNETCORE_URLS
环境变量--urls
命令行参数urls
主机配置键- UseUrls(IWebHostBuilder, String[]) 扩展方法
HTTP 绑定不变。
中断性变更的类型
此更改会影响二进制兼容性。
更改原因
先前的预先绑定行为不考虑配置环境,当证书未被信任时(即作为根证书颁发机构信任,因为它是自签名的),可能会导致开发人员体验不佳。 当使用不受信任的证书访问 HTTPS 终结点时,客户端通常会产生糟糕的用户体验。 例如,它们可能会以无提示方式失败,或者显示警告用户的错误或警告屏幕。
建议的操作
如果未使用默认 https://localhost:5001
绑定,则无需更改。 但是,如果使用此绑定,请参阅配置 ASP.NET Core Kestrel Web 服务器终结点,了解如何更新服务器以启用 HTTPS。
受影响的 API
不适用