VSCode运行dotnet CLI启动webapi访问localhost报ERR_SSL_PROTOCOL_ERROR如何解决
错误原因
ERR_SSL_PROTOCOL_ERROR是浏览器使用HTTPS协议请求仅支持HTTP协议的端口导致的,你当前启动的WebAPI服务仅监听了http://localhost:5000的HTTP端口,如果浏览器自动给地址拼接了https://前缀发起请求,就会触发该协议不匹配错误。
解决方案
- 方案1:直接使用HTTP协议访问
地址栏输入完整的http://localhost:5000,不要省略开头的http://标识。如果浏览器仍自动跳转HTTPS,可清除localhost对应的HSTS缓存:Chrome内核浏览器访问chrome://net-internals/#hsts,在「Delete domain security policies」输入框填入localhost后点击删除即可。 - 方案2:修改项目配置启用HTTPS监听
打开项目根目录下Properties/launchSettings.json文件,找到对应启动配置的applicationUrl字段,修改为同时包含HTTP和HTTPS地址:
保存后重新执行"applicationUrl": "http://localhost:5000;https://localhost:5001"dotnet run,服务会同时监听HTTP 5000端口和HTTPS 5001端口,访问https://localhost:5001即可正常访问。 - 方案3:启动时临时指定监听地址
执行启动命令时直接传入urls参数指定监听地址:dotnet run --urls "http://localhost:5000;https://localhost:5001"
如果首次使用dotnet开发HTTPS服务,需要先信任本地开发证书,执行命令dotnet dev-certs https --trust,在弹出的系统提示框选择确认即可避免后续浏览器报证书不安全的提示。
内容的提问来源于stack exchange,提问作者Refael
相关产品推荐
相关产品推荐

