大家好,我的网站有成千上万的用户...我已经实现了每天向每个用户发送一次邮件的后台任务...我按照此链接执行此操作...
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx
我的问题是 Application_Start() 是否会因为每个用户访问我的网站而被解雇......如果是这样,每个用户每天都会收到一些邮件,所以我想避免它......
大家好,我的网站有成千上万的用户...我已经实现了每天向每个用户发送一次邮件的后台任务...我按照此链接执行此操作...
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx
我的问题是 Application_Start() 是否会因为每个用户访问我的网站而被解雇......如果是这样,每个用户每天都会收到一些邮件,所以我想避免它......
Application_Start 和 Application_End 方法是不代表 HttpApplication 事件的特殊方法。ASP.NET 在应用程序域的生命周期内调用它们一次,而不是为每个 HttpApplication 实例调用一次。
因此,当第一个用户打开站点时,它会点击 application_start 方法,之后不会。
我要补充一点,您正在尝试做的事情是有风险的。如果您想批量发送电子邮件,那么您可能需要考虑可以每天发送电子邮件的调度程序。
Application_Start 仅在第一个人访问站点并且 app_pool 刷新时运行。
并非每次点击该网站都会发生这种情况。
您可能想考虑类似http://www.webcron.org/的类似 cron 的系统来安排任务。
对于全图 - 这是可以在 global.asax 中触发的所有事件的列表:
http://aspalliance.com/1114_Understanding_the_Globalasax_file.3
它应该在 Application_BeginRequest 加上一个为每个访问者存储状态的数据库。但最合适的是在调度程序上。