8
votes

Application_Start () événement dans global.asax

Hai gars, Mon site Web a des milliers d'utilisateurs ... J'ai mis en place une tâche de base d'envoi de mails à chaque utilisateur une fois par jour ... j'ai suivi ce lien pour faire cela ...

http://www.codeproject.com/kb/aspnet/aspnetservice.aspx < / a>

Ma question est que Application_Start () sera tirée pour chaque utilisateur frappant mon site Web ... Si chaque utilisateur recevra un Nombre Nombre de mails par jour, donc je veux l'éviter ...


0 commentaires

4 Réponses :


4
votes

Application_Start ne fonctionne que lorsque la première personne va sur le site et lorsque l'App_pool rafraîchit.

Cela ne se produit pas sur chaque coup du site.

Vous voudrez peut-être penser à quelque chose comme http://www.webcron.org/ pour un Système semblable au cron pour planifier des tâches.


3 commentaires

Peut-être que l'OP pense à _breginrequest?


Salut John, je suis sur l'hébergement partagé pour que je ne puisse pas utiliser les planificateurs ... est-il sûr d'utiliser des rappels d'élément de cache et d'envoyer des mails une fois à Aday pour mes utilisateurs


Les rappels d'élément de cache ne peuvent pas être invoqués, le cache peut être expiré prématurément parce que l'application nécessite une mémoire ou quelque chose, si j'étais vous, j'essayais peut-être d'utiliser webcron.org ou un site similaire.



21
votes

Les méthodes Application_Start et Application_end sont des méthodes spéciales qui ne représentent pas d'événements httpApplication. ASP.NET les appelle une fois pour la durée de vie du domaine d'application, non pour chaque instance HTTPAppLication.

Donc, lorsque le premier utilisateur ouvrira le site, il appuie la méthode Application_Start après cela.

Je vais ajouter que ce que vous essayez de faire est risqué. Si vous souhaitez effectuer un courrier électronique par lot, vous pouvez penser au planificateur qui peut envoyer des courriels quotidiens.


2 commentaires

Salut Ved je suis sur l'hébergement partagé, ils ne permettent pas de prévoir les planificateurs


Bonjour, j'ai récemment mis en œuvre des tâches de base sur le site Web en convertissant le site Web "toujours sur". Il y a un cadre dans le pool d'applications pour le faire. Vous voudrez peut-être examiner cela



0
votes

Il devrait être sur l'application_beginrequest plus un dB stockant l'état pour chaque visiteur. Mais le plus approprié est sur le planificateur.


0 commentaires

2
votes

Pour la photo complète - Voici la liste de tous les événements pouvant être licenciés dans Global.Asax:

http://aspalliance.com/1114_unstanding_the_globalasax_file.3


0 commentaires