.Net 6 Blazor Wasm在IIS Express 10报无法配置HTTPS端点错误
排查解决步骤
首先确认dotnet SDK架构优先级冲突问题
你当前列出的运行时全部为x86版本(路径为C:\Program Files (x86)\dotnet),Windows系统若同时安装了x64版.Net SDK,默认优先级更高,你执行dotnet dev-certs命令时可能调用的是x64 SDK,生成的证书和x86 runtime读取的证书存储不匹配。
执行命令where dotnet查看返回结果,若第一行是C:\Program Files\dotnet\dotnet.exe(x64路径),即可确认该问题。全量清理所有架构的开发证书
分别执行两个架构的dotnet证书清理命令,彻底清空所有残留证书:"C:\Program Files\dotnet\dotnet.exe" dev-certs https --clean "C:\Program Files (x86)\dotnet\dotnet.exe" dev-certs https --clean再次打开MMC证书管理器,确认「当前用户/个人」「当前用户/受信任的根证书颁发机构」「本地计算机/个人」「本地计算机/受信任的根证书颁发机构」四个位置下所有颁发给
localhost、友好名称为ASP.NET Core HTTPS Development Certificate的证书全部删除。重新生成并信任对应架构的开发证书
若你的项目运行在x64环境,使用x64 dotnet执行命令:dotnet dev-certs https --trust若运行在x86环境,使用x86 dotnet完整路径执行命令:
"C:\Program Files (x86)\dotnet\dotnet.exe" dev-certs https --trust生成后返回MMC确认对应证书已同时存在于个人存储和受信任根存储,证书有效期为1年。
检查项目运行配置
打开项目根目录下的Properties/launchSettings.json文件:- 确认IIS Express配置项的
sslPort已正确配置(默认5001或自定义端口,不可为0) - 删除所有自定义的
ASPNETCORE_Kestrel__Certificates开头的环境变量,避免覆盖默认证书读取逻辑 - 删除项目根目录下
.vs文件夹,清除旧的IIS Express缓存配置后重启VS。
- 确认IIS Express配置项的
检查系统残留环境变量
打开系统环境变量面板,查找是否存在DOTNET_ROOT、ASPNETCORE_CERTIFICATE_PATH等.Net相关的自定义变量,若为旧预览版残留的配置,直接删除后重启电脑。兜底手动指定证书配置
若以上步骤都无效,可在appsettings.json中直接显式指定Kestrel读取的证书路径,跳过默认查找逻辑:{ "Kestrel": { "Endpoints": { "Https": { "Url": "https://localhost:你的HTTPS端口", "Certificate": { "Subject": "localhost", "Store": "My", "Location": "CurrentUser", "AllowInvalid": true } } } } }
内容的提问来源于stack exchange,提问作者inliner49er

