每隔几分钟在global.asax中执行一次方法

car*_*son 4 c# asp.net webserver multithreading timer

每隔x分钟在Global.asax文件中执行方法的最有效方法是什么?有没有办法让ASP.NET服务器运行一个后台线程,在一段经过的时间后触发一个tick事件?

sku*_*kub 10

您可以在Global.asax的Application_Start中有一个计时器,但这不是很灵活,因为您需要向应用程序请求计时器启动.但是这样做有危险,正如Haacked详细说明的那样:

更好的方法是使用一个Web服务作为ASP.NET应用程序的接口,并拥有一个按预定的时间间隔调用Web服务的Windows服务:

更多细节在这里:

  • 如果您无法访问您的服务器(假设它由第三方托管)并且无法安装Windows服务,那么您可以使用ASP.NET缓存伪造一个:http://www.codeproject.com/Articles/12117/模拟-A-Windows的服务的使用-ASP-NET可以运行-SC (4认同)