2009-11-25 13 views
5

Hai guys, Mi sitio web tiene miles de usuarios ... Implementé una tarea de segundo plano para enviar correos a cada usuario una vez al día ... Seguí este enlace para hacer esto. ..Application_Start() evento en global.asax

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

mi pregunta se le Application_Start() será despedido por cada usuario golpeando mi sitio web ... Si por lo que cada usuario va a recibir un número de correos electrónicos al día, así que quiero para evitarlo ..

Respuesta

15

Los métodos Application_Start y Application_End son métodos especiales que no representan eventos HttpApplication. ASP.NET los llama una vez durante la vigencia del dominio de la aplicación, no para cada instancia de HttpApplication.

Así que cuando el primer usuario abra el sitio, se presionará el método application_start después de que no lo haga.

Agregaré que lo que estás tratando de hacer es arriesgado. Si desea enviar un correo electrónico por lotes, entonces puede pensar en el Planificador que puede enviar correos electrónicos diariamente.

+0

Hola, estoy en alojamiento compartido, no permiten programadores –

+0

Hola, he implementado recientemente tareas de backgroud que se ejecutan en el sitio web convirtiendo el sitio web como el sitio "siempre activo". Hay una configuración en el grupo de aplicaciones para hacer esto. Es posible que desee examinar ese – Zeus

2

Application_Start solo se ejecuta cuando la primera persona va al sitio y cuando el app_pool se actualiza.

No ocurre en cada visita al sitio.

es posible que desee pensar en algo como http://www.webcron.org/ para un sistema tipo cron para programar tareas.

+0

Quizás OP está pensando en _BeginRequest? –

+0

Hola John, Estoy en alojamiento compartido, así que no puedo usar programadores ... ¿Es seguro usar callbacks de elementos de caché y enviar correos una vez al día para mis usuarios –

+0

No se puede confiar en devoluciones de elementos de caché, la memoria caché puede expirar prematuramente porque la aplicación necesita memoria o algo así, si fuera usted lo intentaría usando http://www.webcron.org/ o un sitio similar. –

0

Debe estar en Application_BeginRequest más un DB que almacena el estado de cada visitante. Pero lo más apropiado es el Programador.

+0

Hai jerjer gracias por su respuesta –

Cuestiones relacionadas