在Web应用程序启动时启动计时器

我想在我的应用程序启动时启动一个System.Threading.Timer (也许部署是正确的单词)。 我已经看到你可以使用Application_Start()但只有在第一个请求到达应用程序时才会触发 。 我需要在应用程序运行后立即启动计时器,以便即使用户没有与站点交互也可以检查要处理的工作。 如何在应用程序启动并运行后让应用程序启动计时器?

当应用程序启动并运行时,应用程序启动实际上会触发。 您遇到的问题是IIS在收到第一个请求之前实际上并未启动应用程序。

另一个需要知道的重要事项是:IIS可以因不活动而关闭您的应用。 如果您有一些需要一直运行的东西,那么您可能会寻找与ASP.NET应用程序不同的车辆。 也许是Windows服务,甚至是计划任务。

您可以将新的ASP.Net 4模式用于AlwaysRunning 。 这样它就不会等待第一个请求启动

    

请参阅: http : //www.asp.net/learn/whitepapers/aspnet4

这是正常行为 – 应用程序需要由请求页面的人“触发”。

在IIS 7.5及更高版本(例如win 2008 / win7)中,有一项function可以自动执行此操作 – 有关详细信息,请参阅此链接: http : //visualstudiomagazine.com/articles/2010/02/18/preloading-aspnet-applications。 ASPX

在我公司制作的其他ASP.NET Web服务器(在线www.neokernel.com)中,这是通过指定将使用服务器配置文件预加载的某些页面来完成的。 从本质上讲,页面将传递到ASP.NET处理管道,并在任何人请求与该页面关联的URL之前进行编译/旋转。

一种方法是使用JavaScript setInterval方法启动计时器。 这需要在每个页面上进行,因此您将把它放在母版页中。