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

在Heroku部署.NET 5 Worker服务后短时间自动关停如何解决?

你遇到的问题核心是误用了Heroku的web dyno类型部署无HTTP服务的后台worker程序。web dyno的启动规则要求程序必须在启动后60秒内绑定Heroku分配的$PORT端口提供HTTP服务,超时就会被判定为启动失败强制关停,这就是你服务最长运行2分钟、多数情况不足1分钟的直接原因。

解决方案按以下步骤操作即可:

1. 调整项目根目录的Procfile配置

删除原有默认的web类型启动配置,改为worker类型配置,示例如下:

worker: dotnet [你的项目编译生成的dll名称].dll

注意不要在启动命令中硬编码端口,也不需要添加任何HTTP服务相关的启动参数。

2. 调整Heroku dyno运行配置

你可以通过Heroku后台资源面板直接操作,关闭web dyno、开启worker dyno,也可以通过Heroku CLI执行以下命令完成配置:

  • 关闭默认启动的web dyno:heroku ps:scale web=0
  • 启动1个worker dyno实例:heroku ps:scale worker=1

3. 注意dyno运行规则

  • 免费版Heroku账号每月共有550小时的免费dyno运行时长,worker dyno和web dyno共享该额度,若不需要24小时不间断运行,免费额度足够使用
  • 若需要24小时不间断运行,升级到Hobby及以上付费方案即可避免休眠限制

排查建议

如果调整配置后服务仍异常,可执行heroku logs --tail查看实时运行日志,根据报错信息排查是程序本身的代码逻辑问题,还是启动命令配置错误问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:06:00