我想将一个简单的共享主机ASP.NET MVC站点部署到Azure(使用免费站点选项),该站点使用
Hangfire来运行计划任务.
问题是该站点仅在第一个请求时启动,因此Hangfire doesn’t start scheduling tasks until then.使用IIS或专用VM,您可以设置“始终打开”选项以预热站点.但这在共享主机中是不可能的.
我该怎么办?我想到支付最小的VM,called “A0”,并在那里放一个ping脚本,以确保我的网站始终正常运行.这可行,但似乎有点矫枉过正.
还有其他好的选择吗?
解决方法
如果你仍然想使用azure网站,你必须从SHARED切换到BASIC(这是第一个带有ALWAYS ON选项),但它比最便宜的VM贵3倍多.
如果我是你,我会选择最便宜的云服务 – 网络角色.它比最便宜的VM要贵一些,但它已经为网站配置了,你不必自己设置所有东西,你可以使用Visual Studio来部署它,你可以使用RDP到盒子等等.
有关定价详情,请参阅http://azure.microsoft.com/en-us/pricing/details/cloud-services/.
但正如评论中所建议的那样,Azure Schedule是值得关注的.
更新:(警告 – 有趣但完全不严重的解决方案)
使用Azure计划程序ping您的网页以使其保持活动状态;-)您可以使用免费套餐每小时创建最多5个作业.这意味着您可以创建5个作业,每隔12分钟就可以ping您一次网站.