ASP.NET Core Web API启用SSL后浏览器重复URL问题解决
解决IIS Express运行ASP.NET Core Web API时URL重复问题
问题出在launchsettings.json里的launchUrl配置——你写了完整的HTTP地址http://localhost:31200/health,启用SSL后IIS Express会自动将请求路由到HTTPS端口44399,浏览器会把这个完整地址当作路径拼接到HTTPS域名后面,导致出现重复URL。
按以下步骤修改即可解决:
- 打开
launchsettings.json,找到IIS Express配置段里的launchUrl,把完整HTTP地址改成相对路径:- 若想默认打开健康检查页,改成
"launchUrl": "/health" - 若想直接打开Swagger文档(更适合API开发场景),改成
"launchUrl": "/swagger" - 若只想显示根域名
https://localhost:44399,可以直接删除launchUrl配置项,或者设为空字符串""
- 若想默认打开健康检查页,改成
修改后的launchsettings.json核心部分示例:
"profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "/swagger", // 这里改为相对路径 "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, // 其他配置保持不变 }, "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:31200/", "sslPort": 44399 } }
修改后重新启动IIS Express,浏览器就会正确打开https://localhost:44399/swagger(或你设置的其他相对路径),不会再出现重复URL的问题。
内容的提问来源于stack exchange,提问作者Sayan
相关产品推荐
相关产品推荐

