Quand utiliser Application_Start vs Init dans Global.asax?

Je me demande dans quelles circonstances je devrais mettre le code d’initialisation de l’ Application_Start() dans Application_Start() vs Init() dans mon Global.asax ?

La distinction entre les deux ne me semble pas évidente, à part que Application_start est appelé en premier, puis Init() .

  • Pourquoi devrais-je utiliser l’un sur l’autre?
  • Cela fait-il vraiment une différence?
  • Quels changements dans l’état de l’application entre les deux événements?

Jusqu’à présent, le seul pointeur réel que je puisse trouver est que IHttpModule uniquement une méthode Init() , donc si ce que je fais peut être plus approprié pour implémenter IHttpModule je devrais utiliser la méthode Init() de Global.asax , si rien d’autre pour la cohérence.

À partir des documents MSDN :

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

Init:

Appelée une fois pour chaque instance de la classe HttpApplication après la création de tous les modules.

MISE À JOUR: si vous devez vous assurer qu’un certain code est appelé une seule fois dans l’application. cycle de vie, Application_Start est une meilleure solution. Exemples: configuration de log4net?

Oui

Il y a des différences entre eux. L’événement Application_Start () est appelé une seule fois, tandis que la méthode Init () est appelée chaque fois qu’une instance de l’application est créée.