2009-08-17 6 views
4

Je veux parcourir mes routes dans DB et les enregistrer dans Application_Start de Global.asax.cs. Tout va bien, mais tout changement dans la DB, je dois réinitialiser l'application afin de laisser l'application pour ramasser mes changements.Réinitialiser les routes mvc asp.net sans réinitialiser l'application

Si je peux réinitialiser les routes sans redémarrer l'application, le problème sera résolu. Comment est-ce que j'achèterais des geeks? Un httpmodule personnalisé? ou ...

+0

Je serais très intéressé de voir votre solution basée sur DB pour stocker des routes de cette façon. J'ai vu quelques exemples en ligne, mais ils sont généralement des déchets, ou tout simplement pas assez. –

Répondre

6
public static void UpdateRouteRegistration() { 
    RouteCollection routes = RouteTable.Routes; 
    using (routes.GetWriteLock()) { 
    routes.Clear(); 
    // repopulate route table here 
    } 
} 

Appelez ensuite cette méthode à partir de Application_Start et à tout autre moment nécessaire pour initialiser la table de routage. Note: Ceci est de la mémoire et pourrait être légèrement mal orthographié, mais vous avez l'idée. :)

-3

daft réponse, les routes ne peuvent pas être ajoutées sans redémarrer l'application et l'appel à UpdateRouteRegistration() sans redémarrer efface les routes de sorte que vous finirez par lancer des erreurs sur chaque requête.

Questions connexes