VS2022本地运行ASP.NET Core6.0 Web API时无法连接Web服务器
解决ASP.NET Core 6.0 Web API在VS2022中的连接错误及邮件SSL握手问题
一、Web服务器连接失败(Unable to connect to web server)
针对IIS Express和项目模式均出现的连接失败问题,可按以下步骤排查:
- 重置IIS Express配置:删除项目根目录下的隐藏
.vs文件夹,重启VS2022后重新生成并运行项目 - 确认开发证书信任状态:
- 打开「证书管理器」(运行
certmgr.msc) - 检查「受信任的根证书颁发机构」中是否存在ASP.NET Core开发证书
- 若缺失,执行命令清理并重新生成信任证书:
dotnet dev-certs https --clean dotnet dev-certs https --trust
- 打开「证书管理器」(运行
- 排查端口冲突:
- 打开项目的
Properties/launchSettings.json,查看配置的端口号 - 用命令检查端口是否被占用:
netstat -ano | findstr :<你的端口号> - 若被占用,修改launchSettings.json中的端口,或通过任务管理器杀掉占用进程
- 打开项目的
- 修复VS2022组件:打开VS Installer,选择「修改」,确保「ASP.NET和Web开发」组件完整,必要时点击「修复」
二、邮件发送SslHandshakeException错误
针对SSL/TLS连接失败问题,解决方案如下:
- 处理自签名证书(仅开发环境使用):在MailKit客户端初始化时添加证书信任回调,跳过验证:
using (var client = new SmtpClient()) { client.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; // 后续连接、发送逻辑 } - 补充证书链:从邮件服务商获取根证书和中间证书,导入到本地「受信任的根证书颁发机构」中
- 确认端口与协议匹配:
- 使用邮件服务器指定的SSL/TLS端口(如SMTP的465端口用于SSL,587用于STARTTLS)
- 在代码中明确指定支持的协议版本,避免协议不匹配:
client.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13;
- 临时排除CRL验证(仅测试场景):在证书验证回调中忽略CRL不可用的错误,或检查网络是否能正常访问证书吊销列表服务器
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

