如何在Asp.net网站上每晚特定时间执行代码

时间:2014-01-28 21:03:34

标签: c# asp.net

我需要每天晚上12点在我的Asp.net网站上做一些处理

我的流程包括执行一些SQL查询并删除一些文件和文件夹以及创建新文件和ets。

我的编程语言是C#

由于

4 个答案:

答案 0 :(得分:1)

创建控制台应用程序并将其作为Windows计划程序任务运行

答案 1 :(得分:1)

Web应用程序不适合这种情况。 Web应用程序是请求/响应系统,它们只在响应请求时“正在运行”。除此之外,它们受Web服务器资源管理的支配。

您正在寻找的是:

  • Windows服务
  • 控制台应用程序

对于Windows服务,您将使用Timer实现它以在特定时间执行某些功能。对于控制台应用程序,它将默认执行该功能,并将安排在特定时间运行(可能使用Windows内置的任务计划程序)。

如果您要执行的功能是Web应用程序的一部分,那就没问题。您可以将它从Web应用程序中提取到同一解决方案中的类库中,并让Web应用程序引用该库。然后将Windows服务或控制台应用程序添加到同一解决方案并引用相同的库。这样他们就会共享相同的代码。

根据个人喜好,如果您不熟悉Windows服务,那么您可能会发现控制台应用程序将更容易调试。

答案 2 :(得分:1)

作为服务器端任务,我根本不推荐使用控制台应用程序。

最好的方法是使用Window Forms应用程序,删除所有创建初始表单的代码以及对Windows Form API的引用。

您剩下的是一个不会打开控制台窗口,不打开表单或其他任何内容的应用程序。它将在没有任何GUI的情况下运行。

在那里你可以放入你想要的一切。

然后安排应用程序在指定时间运行:Task Scheduler

这样做要好得多,因为系统管理员无需触摸您的代码即可更改日程安排。

答案 3 :(得分:1)

虽然不是最性感的解决方案。到目前为止,最简单的解决方案是通过触发您希望在指定时间运行的功能,使用计划任务在应用程序中达到终点。我已经看到在相当大的应用程序中部署相当成功。

以下文章详细介绍了如何执行此操作。

Recommended method for loading a URL via a scheduled task on Windows

对于所有倡导建筑服务等的人,我同意这是一个很好的解决方案,但如果您想要做的就是每天进行一次快速批处理工作,或许更简单更好。