我需要每天晚上12点在我的Asp.net网站上做一些处理
我的流程包括执行一些SQL查询并删除一些文件和文件夹以及创建新文件和ets。
我的编程语言是C#
由于
答案 0 :(得分:1)
创建控制台应用程序并将其作为Windows计划程序任务运行
答案 1 :(得分:1)
Web应用程序不适合这种情况。 Web应用程序是请求/响应系统,它们只在响应请求时“正在运行”。除此之外,它们受Web服务器资源管理的支配。
您正在寻找的是:
对于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
对于所有倡导建筑服务等的人,我同意这是一个很好的解决方案,但如果您想要做的就是每天进行一次快速批处理工作,或许更简单更好。