http://www.codeproject.com/KB/aspnet/ASPNETService.aspx
我的问题是,每个用户点击我的网站都会触发Application_Start()...如果是这样,每个用户每天都会收到n封邮件,所以我想避免它......
答案 0 :(得分:19)
Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法。 ASP.NET在应用程序域的生命周期内调用它们一次,而不是为每个HttpApplication实例调用它们。
因此,当第一个用户打开网站时,它会点击application_start方法,之后就不会。
我要补充一点,你要做的就是冒险。如果您想进行批量电子邮件发送,那么您可能需要考虑可以每天发送电子邮件的Scheduler。
答案 1 :(得分:3)
Application_Start仅在第一个人访问该网站时以及app_pool刷新时运行。
每次点击网站都不会发生这种情况。
你可能想要像http://www.webcron.org/这样的类似于类似cron的系统来安排任务。
答案 2 :(得分:0)
应该在Application_BeginRequest上加上一个存储每个访问者状态的数据库。 但最合适的是Scheduler。
答案 3 :(得分:0)
从整体上看-这是可以在global.asax中触发的所有事件的列表:
http://aspalliance.com/1114_Understanding_the_Globalasax_file.3