Pouvez-vous donner un exemple de ce qui pourrait être mieux placé dans les sous-programmes Application_Start et Session_Start? Je sais quand chaque sous-programme est appelé. Application_Start lorsque le premier utilisateur accède pour la première fois à l'application Web. Session_Start lorsqu'un utilisateur ouvre une session avec l'application. Mais quel code appartient à chacun de ces sous-programmes. Que devrait faire le code dans chaque sous-routine?Quel code doit être placé dans les événements application_start et session_start dans global.asax?
Quel code doit être placé dans les événements application_start et session_start dans global.asax?
Répondre
Juste des exemples? Eh bien, dans un site MVC, les routes sont enregistrées dans Application_Start. C'est aussi un bon endroit pour initialiser un conteneur IoC tel que StructureMap. Peut-être initialiser certains singletons que vous avez dans votre application si vous voulez qu'ils soient facilement disponibles plutôt que tardifs lorsqu'un utilisateur y accède (comme s'ils ont un coût d'initialisation élevé et que vous préférez faire un premier essai lent sur le site vous-même que déranger un client ou deux avec elle).
Session_Start est généralement utilisé moins souvent, mais pourrait être un bon endroit pour le suivi par utilisateur (ou par session, de manière réaliste) de quelque sorte.
Application_Start
est souvent utilisé pour initialiser une large application des paramètres qui doivent être fait une fois par domaine d'application comme l'enregistrement des conteneurs d'objets, la lecture des valeurs d'initialisation de configuration, ... Dans Session_Start
vous pouvez placer un code qui est lié à l'utilisateur spécifique qui a commencé la session.
Faites attention à la gestion des exceptions dans Application_Start. En mode intégré IIS7, vous n'aurez pas l'objet de réponse ou HTTPContext. Voir ce sujet: Request is not available in this context