如何在Windows Server上模拟cron作业?

我在一个窗口框中运行.NET,我想在午夜每天晚上运行一个函数。 当然,由于HTTP无状态和Windows没有“cron job”types的function(我知道),我要么必须每晚在午夜访问我的站点,要么等待用户访问站点正在更新。

有没有其他的办法可以在某些时候自动运行?

谢谢

如果没有其他的答案适合你,这里有一个选项:

有一大堆的服务器监控服务,将会定期向您的网站发起http呼叫(如果您愿意的话,每分钟一次)。 一些人可以免费得到5分钟的时间间隔。

创build一个密码保护的页面,执行你的function(如果它还没有完成今天),并指出该服务。

至less这样你就不必额外写任何东西,而且你可以轻松地知道它不依赖于你的家用机器。

我很确定Windows的任务调度程序可以完成cron可以做的大部分事情。 但是我可能会错过一些东西。

编辑 :达到设置 – >控制面板 – >计划任务

杰夫·阿特伍德在播客的某个时候提到了一个肮脏的黑客使用caching过期callback来伪造这个。

他会在.Net的caching中插入一个项目,过期时间设置为2小时,一旦项目过期,就会调用一个callback函数,这就是他的cron。

我认为这是文章:
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx?display=Print

如果你问我,这很糟糕,但对于一个共享的托pipe解决scheme,我想不出什么更好的。

此外,还有外部的cron服务,你给一个URL,他们会定期“ping”,如:(这些不是免费的)
http://webcron.org/
http://www.webbasedcron.com/

这是以编程方式在Task Scheduler中添加/删除和pipe理任务的起点。

http://www.codeproject.com/KB/system/taskscheduler.aspx

如果你有命令行访问,你可以尝试“at”命令,这就像一个超轻型的cron:

http://support.microsoft.com/kb/313565

相当于cron的窗口是At 。 如果你有机会访问。

使用Timer类创build一个定时器,定期调用要执行的方法。

可以在Global类的Application_Start事件中启动一个静态定时器。 由于计时器使用间隔而不是绝对时间,因此必须计算直到午夜的时间间隔,并相应地设置“ 间隔”属性。

它看起来像GoDaddy有这方面的规定 ,但有一个方法来做到这一点:当你安装Drupal需要你设置一个cron作业,我发现项目成员已经logging了这一步。 有关更多信息,请访问http://drupal.org/cron ,并记得阅读http://drupal.org/node/31506以获取特定的Windows信息。; 如果一切都失败了,谷歌的“networkingcron工作”,并使用商业“cron工作”服务。 仔细select,不要被扯掉。

我也面临同样的问题。 我想在GoDaddy上用MSSQL运行ASP.NET。 但是他们没有Windows主机的任务。 阅读后,我做了我自己的谷歌,并发现这个免费的networkingcron作业调度:

我只是尝试,它完美的作品…差不多。 这项工作在1年后到期。

http://www.setcronjob.com/

希望它有帮助。

如果你使用dotnetnuke,试试这个: http ://www.wwwcoder.com/tabid/68/type/art/parentid/224/site/6401/default.aspx

寻找同一个问题的答案,我发现这个post(quartz-net-with-asp-net)带有Quartz.NET的设置指令(“.NET平台的企业Job Scheduler”,来自他们的网站),甚至从ASP.NET应用程序。

在这里添加它主要是为了参考。

为什么不安装cygwin并使用cron本身?

这里是一个关于设置它的pdf指南:

http://csc.csudh.edu/kleyba/cygwin-cron.pdf