[ASPNET] Exécutez du code au pré-démarrage d’une application

April 10, 2013 -

Depuis ASP.NET 4, il existe une fonctionnalité assez intéressante : la possibilité d’exécuter du code au chargement de l’app domain dans lequel s’exécute votre application, c’est à dire avant même que le code de votre application soit chargé.

On parle du “pré-démarrage” de l’application. Ce mécanisme est très simple à mettre en place et peut être réalisé dans n’importe quel assembly chargé dans l’app domain de votre application :

  • Création d’une classe statique PreApplicationStart (par exemple)
  • Création d’une méthode statique OnStart (par exemple)
  • Ajout d’un attribut d’assembly pour indiquer l’emplacement de cette classe

Cela peut être très utile, notamment pour enregistrer des modules http, par exemple !

Vous obtenez donc un code de ce genre là :

public static class PreApplicationStart
{
    public static void OnStart()
    {
        //code de pré-démarrage
    }
}

Ensuite, il suffit de pointer cette classe depuis le fichier Assembly.cs du projet dans lequel elle est définie :

[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "OnStart")]

Il ne reste qu’à référencer la librairie dans le projet web, et la méthode OnStart sera automatiquement appelée lors du pré-démarrage.

Enjoy Winking smile

Julien

Comments

Share

Tags


Twitter


How to run #Meteor applications on Azure #AppServices https://t.co/nGO8UMI1T6 #JavaScript

August 25, 2016 11:42

What’s New in C# 7.0 <3 https://t.co/CltbhlSXmT

August 25, 2016 11:35

This is the new Microsoft :) Live from #LinuxCon: Sharing the latest news and learnings on #Microsoft’s open journey https://t.co/P8UZUwHHAX

August 23, 2016 07:00

How to create a #Docker Datacenter on Microsoft #Azure https://t.co/dql2jYD0xQ

August 22, 2016 15:00

RT @DockerParis: Notre prochain meetup aura lieu au Palais des Congrès à l'occasion des MS Experiences https://t.co/73ZRAyTiFS

August 22, 2016 14:21

Les sessions de @ContainerDay16 sont en ligne! Ma keynote #Container #Azure / #Windows est ici: https://t.co/DnKgiez1Bk

August 22, 2016 07:04

Provisioning the #Azure #Kubernetes infrastructure with a declarative template https://t.co/yQFOfgzEbR

August 20, 2016 09:58

All you need to know about #Windows #Containers in one pic! https://t.co/p5wcaIZf0R

August 20, 2016 08:39

#DevOps: Build, push and run @Docker images using #VisualStudio Team Services https://t.co/r9KNaZnJ9U https://t.co/DtMagfwjC5

August 19, 2016 13:06

Nice video: Run #PowerShell Natively on #Linux with @Docker :) https://t.co/b8nwA8XbGL

August 19, 2016 06:40

Very cool update: New UI and new navigation for #TeamServices https://t.co/4UFohxPuMA

August 19, 2016 05:38

#PowerShell is now open source and available on #Linux :) https://t.co/HfCYEoSIvz

August 18, 2016 16:37

@fdibot @Azure un outil fait par Docker (un template ARM en fait :)) -> https://t.co/oeoDFPkL7p

August 18, 2016 12:57

First Look: #Docker for @Azure Beta https://t.co/VL1S8Q2csC

August 18, 2016 12:53

#TeamServices Integration with #Jenkins Jobs, Pipelines, and Artifacts Lifecycle Management https://t.co/r2Cz7gjlVC #CloudBees #DevOps

August 18, 2016 12:50