启动后台作业Asp.net 4.0应用程序

启动后台作业Asp.net 4.0应用程序,asp.net,Asp.net,我面临一个问题。我必须创建asp.NET4.0Web应用程序,它应该在指定的时间间隔后从数据库中检查一个表,并迭代所有记录。我必须保存一些列值中有“xxxx”的记录。我创建了一个类,这个类的计时器有1分钟的间隔。在tick方法上,它迭代所有记录并过滤出要保存的数据 我在Global.asax中的Application\u Start()方法中创建了这个类的实例,但是这个方法不会触发。请记住,此web应用程序没有webform,甚至没有Default.aspx 我无法在windows服务中执行此操

我面临一个问题。我必须创建asp.NET4.0Web应用程序,它应该在指定的时间间隔后从数据库中检查一个表,并迭代所有记录。我必须保存一些列值中有“xxxx”的记录。我创建了一个类,这个类的计时器有1分钟的间隔。在tick方法上,它迭代所有记录并过滤出要保存的数据

我在
Global.asax
中的
Application\u Start()
方法中创建了这个类的实例,但是这个方法不会触发。请记住,此web应用程序没有webform,甚至没有Default.aspx


我无法在windows服务中执行此操作,因为宿主提供程序不支持windows服务

除非由访问者启动应用程序,否则标准asp.net网站中的任何内容都不会运行


如果您想要调度功能,您需要创建一个windows服务或编写一个小应用程序,可以使用windows任务调度器(如果您在linux上,则使用cron)进行设置。

ASP.NET应用程序在收到请求之前不会启动(例如,aspx页面或asmx服务)

一旦它们开始,它们在过程结束之前只能活有限的时间

我所知道的使站点无限期保持活动状态的唯一方法(尽管您仍然需要提前手动启动它)是在过期时设置一个
Cache
项(只是一个一次性对象)并设置一个事件以进行页面调用,然后添加一个新的Cache项,从而重新启动进程

这将使您的应用程序保持活动状态,以便您可以启动计划的事件

此方法当然存在问题-如果发生异常导致进程终止,或者如果服务器重新启动,则“计时器”将不会再次启动,直到手动请求页面。

在IIS 7.5中,有一个可能用于自动访问应用程序的,即使没有用户打开URL

另一种方法是使用免费的keep-alive-check服务,如pingdom或


这就是说,我通常总是使用控制台应用程序来执行此类后台任务,我将其包含在Windows中的计划任务中,并让它时不时(例如每小时)运行。

使用不同的主机提供商。这不应该在ASP.NET应用程序中完成。似乎满足了我的要求。请检查并给出一些建议。