我发展在ASP.net(C#)一个网站,并具备以下条件:
该网站应该从一个RSS feed每天晚上取数据,进行一些计算,与计算值更新数据库。 我怎么能在一个共享的托管环境实现这一目标?
我通常得到的答案是有一个Windows服务,做这一点,但因为我不能在我的共享主机环境中运行的Windows服务,我不能用这个。
我发现另一种方法是使用HttpRuntime.Cache如描述http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/
但是,这种做法似乎有很多缺点的。 有没有其他办法?
在某些(大多数?)共享主机提供商,至少我所使用的那些,它们允许你安排通过其控制面板任务。 我知道discountasp.net确实和Rackspace为好。
如果提供者有能力,有它调用/在指定的时间加载一定的asp.net web页面,并做其工作。 对于很多小任务,这将是阻力最小的路径。
如果它不提供该功能,你都不愿意更换供应商,你总是可以,只要你可以运行从一台机器,是不是在你的ISP,计划任务(使用内置于一个在Windows Server)获得从它的数据库。 我已经在过去使用这种方法为好。 任何机器上可靠地在正确的时间就行了。
Windows计划任务 :
在共享主机不可能的,如果你没有任何专用资源。 非常有限。
像Windows计划任务和控制面板能力使用黑客都没有很好的解决方案。 他们吸的大部分时间,他们是我们的一个头疼,由于这几年。
调度Web服务 :
您可以使用ATrigger在共享主机调度服务。 一个NET库也可以没有开销创建计划任务。
免责声明:我是ATrigger团队中。 这是一个免费的,我还没有任何商业目的。