ASP.NET Core 2.0在Mac上localhost无法连接但Windows正常求助
解决ASP.NET Core 2.0在Mac上的localhost连接问题
你遇到的核心问题是浏览器强制跳转到无端口的HTTPS地址,但实际Kestrel只监听了HTTP端口,导致连接失败。结合你的描述,我整理了几个针对性的解决步骤:
1. 完善launchsettings.json的Kestrel配置
Mac上运行ASP.NET Core用的是Kestrel而非IIS Express,你贴的配置不完整,要确保profiles里的项目专属配置(不是IIS Express那项)有正确的端口设置。补充后的配置示例如下:
"profiles": { "YourWebAppName": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "http://localhost:51684;https://localhost:5001", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "IIS Express": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "https://localhost:44314/", "sslPort": 44314 } } }
这里给Kestrel同时配置了HTTP和HTTPS端口,确保应用能正常监听。
2. 清除Chrome的HSTS缓存
浏览器之前可能记录了localhost的HTTPS强制跳转规则,导致你粘贴HTTP地址也会自动跳转。操作步骤:
- 在Chrome地址栏输入
chrome://net-internals/#hsts - 找到「Delete domain security policies」区域,输入
localhost,点击Delete - 完全关闭Chrome后重新打开
3. 检查HTTPS重定向中间件
如果你的Startup.cs里有app.UseHttpsRedirection();这行代码,但Kestrel没正确配置HTTPS证书,就会导致跳转错误。你可以先暂时注释掉这行,测试HTTP是否能正常访问;如果需要HTTPS,继续下一步。
4. 生成并信任Mac上的开发SSL证书
Mac上默认没有ASP.NET Core的开发SSL证书,需要手动生成:
- 打开终端,运行命令:
dotnet dev-certs https --trust - 按照系统提示输入密码,信任这个证书
- 重启你的ASP.NET Core应用,此时Kestrel就能正常监听HTTPS端口了
5. 指定浏览器打开的正确URL
在launchsettings.json的Kestrel配置里加上launchUrl,确保浏览器打开的是正确地址:
"launchBrowser": true, "launchUrl": "http://localhost:51684"
按这些步骤操作后,应该就能正常访问你的应用了。
内容的提问来源于stack exchange,提问作者brandoq123
相关产品推荐
相关产品推荐

