我想将一个简单的共享主机ASP.NET MVC站点部署到Azure(使用免费站点选项),该站点使用Hangfire来运行计划任务。
问题是网站仅在第一次请求时启动,因此Hangfire doesn't start scheduling tasks until then。使用IIS或专用VM,您可以设置"始终打开"预热网站的选项。但这在共享托管中是不可能的。
我该怎么办?我想为最小的虚拟机called "A0"付费,并在那里放置一个ping脚本,以确保我的网站始终处于运行状态。这样可行,但看起来有点矫枉过正。
还有其他好的选择吗?
答案 0 :(得分:7)
老问题我知道,但也许我错过了一些东西。我使用UptimeRobot(https://uptimerobot.com/),因为它不断向您的Web服务器发出请求以使其保持活动状态。这不会比自己创建自动化作业简单得多。同样,我不确定是否在共享环境中会使UptimeRobot无用,但只是想我想传递。
答案 1 :(得分:4)
如果您仍想使用azure网站,您必须从SHARED切换到BASIC(这是第一个带有ALWAYS ON选项),但它比最便宜的贵3倍以上VM。
如果我是你,我会选择最便宜的云服务 - 网络角色。它比最便宜的虚拟机要花费多一点,但它已经为网站配置了,你不必自己设置所有东西+你可以使用Visual Studio来部署它,你可以RDP到盒子还有很多。
有关定价的详细信息,请参阅http://azure.microsoft.com/en-us/pricing/details/cloud-services/。
但正如评论中所建议的那样,Azure Schedule值得关注。
更新 :(警告 - 有趣但完全不严重的解决方案)
使用Azure计划程序ping您的网页以使其保持活动状态;-) 您可以使用免费套餐每小时创建最多5个作业。这意味着您可以创建5个作业,每隔12分钟就可以ping您一次网站。