如何在Azure共享主机中启动Hangfire("永远在线")?

h b*_*bob 6 asp.net azure hangfire

我想将一个简单的共享主机ASP.NET MVC站点部署到Azure(使用免费站点选项),该站点使用Hangfire来运行计划任务.

问题是该站点仅在第一个请求时启动,因此Hangfire在此之前不会开始计划任务.使用IIS或专用VM,您可以设置"始终开启"选项以预热站点.但这在共享主机中是不可能的.

我该怎么办?我想到支付最小的虚拟机,称为"A0",并在那里放置一个ping脚本,以确保我的网站始终处于运行状态.这可行,但似乎有点矫枉过正.

还有其他好的选择吗?

rya*_*lit 7

老问题我知道,但也许我错过了一些东西.我使用UptimeRobot(https://uptimerobot.com/),因为它不断向您的Web服务器发出请求以使其保持活动状态.这不会比自己创建自动化作业简单得多.同样,我不确定是否在共享环境中会使UptimeRobot无用,但只是想我想传递.


b2z*_*w2a 4

如果您仍然想使用 azure 网站,则必须从 SHARED 切换到 BASIC(这是第一个具有 ALWAYS ON 选项的网站),但它比最便宜的 VM 贵 3 倍多。

如果我是你,我会选择最便宜的云服务 - Web 角色。它的成本比最便宜的 VM 贵一点,但它已经针对网站进行了配置,您不必自己设置所有内容 + 您可以使用 Visual Studio 来部署它,您可以通过 RDP 到盒子等等。

有关定价详细信息,请参阅http://azure.microsoft.com/en-us/pricing/details/cloud-services/

但正如评论中所建议的,Azure Schedule 值得一看。

更新:(警告 - 有趣但完全不严肃的解决方案)

使用 Azure Scheduler 对您的网页进行 ping 操作以使其保持活动状态;-) 您可以使用免费套餐每小时创建最多 5 个具有最大执行次数的作业。这意味着您可以创建 5 个职位,每 12 分钟就会对您的网站执行一次 ping 操作。

  • 您可以使用免费套餐并创建 5 个每小时“ping”作业:00:00、00:12、00:24、00:36 和 00:48 - 这意味着您可以每 12 分钟进行一次 ping(5 个作业)。定价详细信息 http://azure.microsoft.com/en-gb/pricing/details/scheduler/ (2认同)