global.asax中的Application_Start()事件

海家伙,我的网站有成千上万的用户…我已经实现了每天一次向每个用户发送邮件的后台任务……我按照这个链接来做这个…

http://www.codeproject.com/KB/aspnet/ASPNETService.aspx

我的问题是,每个用户点击我的网站都会触发Application_Start()…如果是这样,每个用户每天都会收到一些邮件,所以我想避免它……

Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法。 ASP.NET在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们。

因此,当第一个用户打开网站时,它将会触及application_start方法,之后它将不会。

我要补充一点,你要做的就是冒险。 如果您想进行批量电子邮件发送,那么您可能想要考虑可以每天发送电子邮件的Scheduler。

Application_Start仅在第一个人访问该站点时以及app_pool刷新时运行。

每次点击网站都不会发生这种情况。

您可能想要像http://www.webcron.org/这样的类似于类似cron的系统来安排任务。

它应该在Application_BeginRequest上加上一个DB,用于存储每个访问者的状态。 但最合适的是Scheduler。