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

ASP.NET Core自托管程序需持续运行,非IIS环境替代方案咨询

自托管ASP.NET Core程序持续运行的替代方案

针对你的自托管.exe程序,以下几种方案可确保它在无连接时段持续运行:

1. 注册为Windows服务

这是Windows环境下最稳定的方案,服务随系统自动启动,无用户登录时也能保持运行:

  • 用原生命令注册:执行sc create "你的服务名称" binPath= "C:\程序路径\your-app.exe" start= auto(注意binPath=和start=后必须留空格)
  • 在服务管理器中设置启动类型为自动,并配置恢复策略(如程序崩溃后自动重启)
  • 也可通过.NET工具简化适配:安装dotnet tool install -g Microsoft.Extensions.Hosting.WindowsServices,在Program.cs中添加UseWindowsService(),让程序更好地兼容服务运行模式

2. 使用NSSM包装为服务

NSSM是一款轻量工具,能将任意exe转为服务,支持图形化配置,比原生服务更灵活:

  • 下载NSSM后运行nssm install "你的服务名称",在弹出界面中指定exe路径、工作目录等参数
  • 配置完成后服务自动注册,可直接设置自动启动和崩溃恢复规则

3. 程序内部配置保活逻辑

在代码层面避免程序因闲置终止:

  • 在Program.cs中禁用Kestrel的闲置超时,确保后台任务不受影响:
    builder.WebHost.ConfigureKestrel(options =>
    {
        options.Limits.IdleTimeout = Timeout.InfiniteTimeSpan;
    });
    builder.Services.AddHostedService<你的后台任务类>();
    
  • 后台任务中添加定时自检逻辑,比如每隔一段时间向自身发送简单请求,避免被系统判定为闲置进程

4. 用任务计划程序做进程监控

通过Windows任务计划程序实现兜底监控,确保程序意外终止后自动重启:

  • 创建触发条件为「系统启动时」和「每隔10分钟」的任务
  • 操作设置为启动你的exe,同时勾选「如果程序已运行则不启动新实例」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:45:54