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

电脑重启后ASP.NET Core API启动报System.AggregateException错误如何解决?

问题根因定位

首先看错误栈最底层的System.ComponentModel.Win32Exception (1722): The RPC server is unavailable.是核心触发原因:

  • 你在代码中使用了UseWindowsService()扩展方法,ASP.NET Core作为Windows服务运行时会默认注册Windows事件日志作为日志提供程序
  • 系统重启后RPC服务异常未启动,导致程序无法写入Windows事件日志,日志写入抛出的异常直接阻断了Kestrel的启动流程
  • 开头的Kestrel地址覆盖警告属于配置优先级提示,不影响启动:appsettings.json中配置的Kestrel端点优先级高于launchSettings.json中的applicationUrl配置,所以会提示覆盖了64616端口的配置,改用5001端口。
解决方案

步骤1:修复RPC服务异常

  • 按Win+R输入services.msc打开服务管理器
  • 找到Remote Procedure Call (RPC)服务,确认服务状态为正在运行,启动类型为自动
  • 若服务未启动,手动点击启动,若启动失败可查看系统事件日志排查RPC服务启动失败的具体原因。

步骤2:(本地调试可选)禁用Windows事件日志

如果是本地开发调试不需要写入Windows事件日志,可以直接修改Program.cs代码,移除默认的事件日志提供程序,快速解决启动问题:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
    .ConfigureLogging(logging =>
    {
        // 清空默认注册的日志提供程序
        logging.ClearProviders();
        // 按需添加需要的日志提供程序,比如控制台、调试日志
        logging.AddConsole();
        logging.AddDebug();
    })
    .ConfigureServices((context, services) =>
    {
        services.Configure<KestrelServerOptions>(
        context.Configuration.GetSection("Kestrel"));
    }).ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    }).UseWindowsService();

步骤3:(需要事件日志场景)修复日志源权限

如果必须使用Windows事件日志,可手动创建日志源并赋予权限:

  • 以管理员身份运行PowerShell,执行命令:
    New-EventLog -LogName Application -Source ".NET Runtime"
    
  • 执行完成后重启程序即可正常写入事件日志。

步骤4:(可选)消除Kestrel地址覆盖警告

如果不需要看到地址覆盖提示,可选以下任意一种操作:

  • 删除launchSettings.json中InternalToolsGeneralAPI配置节点下的applicationUrl字段
  • 将appsettings.json中Kestrel的监听端口修改为和launchSettings.json中的64616保持一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:36:03