ASP.NET站点 - 在特定时间触发一些代码

时间:2011-12-21 03:56:13

标签: c# asp.net .net scheduled-tasks

我正在计划构建一个ASP.NET网站,该网站将位于共享的主机上。我没有为此服务的Windows服务选项。我可以选择哪个特定于我可以执行任务的网站,比如凌晨3点?也许开始一个单独的线程,或什么?

感谢。

3 个答案:

答案 0 :(得分:4)

我正要做类似的事情。

需要发生的是需要从Global.asax中启动单独的线程。

void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup

    }

您还需要考虑应用程序池将多次循环,因此请确保它基于特定时间,并且您还有一个数据库,用于存储是否已运行以及是否已将应用程序池循环到凌晨3点,非常有可能。

您还需要使用某种形式的保持活动服务,就像您的网站处于非活动状态一样,应用程序池在有人点击之前不会重新启动。

答案 1 :(得分:4)

我们通过以下两种方式之一处理此类活动:

1)启动global.asax Application_Start中负责在适当时间执行活动的线程。

2)在应用程序启动时在指定超时的HttpRuntime.Cache中存储虚拟对象,并让它在CacheItemRemovedCallback中执行活动。

答案 2 :(得分:2)