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

C# 如何在Asp.net网站上每晚的特定时间执行代码,c#,asp.net,C#,Asp.net,我需要每天早上12点在我的Asp.net网站上做一些处理 我的过程包括执行一些SQL查询、删除一些文件和文件夹以及创建新的文件和文件夹 我的编程语言是C# 谢谢创建控制台应用程序并将其作为Windows计划程序任务运行创建控制台应用程序并将其作为Windows计划程序任务运行web应用程序不适用于此。Web应用程序是请求/响应系统,它们只有在响应请求时才“运行”。除此之外,它们还受制于web服务器的资源管理 您要找的是: Windows服务 控制台应用程序 对于Windows服务,您可以使用

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

我的过程包括执行一些SQL查询、删除一些文件和文件夹以及创建新的文件和文件夹

我的编程语言是C#


谢谢

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

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

web应用程序不适用于此。Web应用程序是请求/响应系统,它们只有在响应请求时才“运行”。除此之外,它们还受制于web服务器的资源管理

您要找的是:

  • Windows服务
  • 控制台应用程序
对于Windows服务,您可以使用
计时器来实现它,以便在特定时间执行某些功能。对于控制台应用程序,默认情况下,它将执行该功能,并计划在特定时间运行(可能使用Windows内置的任务调度器)

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


出于个人偏好,如果您对Windows服务不太熟悉,您可能会发现控制台应用程序更容易调试。

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

您需要的是:

  • Windows服务
  • 控制台应用程序
对于Windows服务,您可以使用
计时器来实现它,以便在特定时间执行某些功能。对于控制台应用程序,默认情况下,它将执行该功能,并计划在特定时间运行(可能使用Windows内置的任务调度器)

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


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

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

最好的方法是使用Windows窗体应用程序,删除所有创建初始窗体的代码和对Windows窗体API的引用

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

在那里你可以放任何你想要的东西

然后计划应用程序在指定时间运行:


这要好得多,因为系统管理员无需触摸您的代码即可更改计划。

作为服务器端任务,我不建议使用控制台应用程序

最好的方法是使用Windows窗体应用程序,删除所有创建初始窗体的代码和对Windows窗体API的引用

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

在那里你可以放任何你想要的东西

然后计划应用程序在指定时间运行:


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

但这不是最吸引人的解决方案。到目前为止,最简单的解决方案是通过触发您希望在分配的时间运行的功能,在您的应用程序中使用计划的任务来达到终点。我已经在相当大的应用程序中看到这种部署相当成功

在下面的帖子中可以找到关于如何做到这一点的详细描述


对于所有提倡建筑服务等的人来说,我同意这是一个很好的解决方案,但如果您只想每天运行一次快速批处理作业,可能更简单一些更好

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

在下面的帖子中可以找到关于如何做到这一点的详细描述


对于所有提倡建筑服务等的人来说,我同意这是一个很好的解决方案,但如果您只想每天运行一次快速批处理作业,可能更简单一些更好

为什么可以;你不能把它作为计划任务运行吗?为什么不能;你不能把它作为计划任务运行吗?