You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core API HTTP运行正常 启用SSL后无法加载启动文件排查

.NET Core API 启用SSL后无法启动问题排查

问题现象

HTTP协议下运行正常,勾选启用SSL后程序无法加载Program.cs或Startup.cs文件,访问HTTPS地址报ERR_CONNECTION_RESET错误,请求仅返回provisional headers。

相关配置

launchSettings.json

{
  "iisSettings": {
  "windowsAuthentication": false,
  "anonymousAuthentication": true,
  "iisExpress": {
  "applicationUrl": "http://localhost:5001/",
  "sslPort": 45150
}
},
  "profiles": {
     "IIS Express": {
     "commandName": "IISExpress",
     "launchBrowser": true,
     "environmentVariables": {
     "ASPNETCORE_ENVIRONMENT": "Development"
    }
},
"Bullies.API": {
  "commandName": "Project",
  "launchBrowser": true,
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  },
  "applicationUrl": "https://localhost:45150;http://localhost:5001"
    }
  }
}

Program.cs

public class Program
{
    public static void Main(string[] args)
    {
        Log.Logger = new LoggerConfiguration()
        .Enrich.FromLogContext()
        .WriteTo.Console()
        .CreateLogger();

        try
        {
            Log.Information("Starting up");
            CreateHostBuilder(args).Build().Run();
        }
        catch (Exception ex)
        {
            Log.Fatal(ex, "Application start-up failed");
        }
        finally
        {
            Log.CloseAndFlush();
        }            
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .UseSerilog()
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            })
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Stuff>();
            });
}

已执行操作

  • 多次以管理员模式重启VS 2019
  • 执行dotnet dev-certs https --clean清理所有本地开发证书
  • 执行dotnet dev-certs https --trust重新生成并信任证书

推荐排查点

  • 检查IIS Express配置文件:打开解决方案根目录下.vs/[项目名]/config/applicationhost.config,确认45150端口的HTTPS绑定配置正确,关联证书有效
  • 排查端口占用:执行netstat -ano | findstr "45150"命令,确认45150端口未被其他进程占用,若存在占用可更换sslPort后重试
  • 校验证书状态:打开证书管理器certmgr.msc,检查当前用户个人存储和受信任根存储中的localhost证书是否有效、未过期
  • 查看启动日志:检查VS调试输出窗口的启动日志,定位是否是服务注册、中间件加载环节的异常导致启动失败
  • 切换启动模式:将启动配置切换为项目自托管模式(即Bullies.API profile),测试HTTPS访问是否正常,排除IIS Express配置问题

最终解决方案

该问题由IIS Express自签名证书异常导致,按以下步骤重新生成证书即可解决:

  1. 关闭所有IIS Express进程和Visual Studio
  2. 按Win+R输入certmgr.msc打开证书管理器
  3. 依次进入「当前用户-个人-证书」,删除所有颁发给localhost、友好名称包含IIS Express的证书
  4. 依次进入「当前用户-受信任的根证书颁发机构-证书」,删除所有符合上述条件的证书
  5. 重启Visual Studio并打开项目,重新勾选启用SSL,按提示信任VS自动生成的新证书即可

内容的提问来源于stack exchange,提问作者GPGVM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:54:03