web-dev-qa-db-fra.com

Ordre d'exécution d'événement HTTPModule?

Quelqu'un connaît-il un site ou une page ou connaît-il l'ordre d'exécution des événements de la classe HTTPApplication pour l'exécution de l'événement HTTPModule?

J'ai trouvé le MSDN Documentation pour tous les événements, mais il ne contient pas de liste d'étapes de processus et je n'ai pas pu en trouver.

59
Adron

Peut-être que cela aide

http://support.Microsoft.com/kb/307985/en-us/

Une classe HttpApplication fournit un certain nombre d'événements avec lesquels les modules peuvent se synchroniser. Les événements suivants sont disponibles pour les modules avec lesquels se synchroniser à chaque demande. Ces événements sont répertoriés dans un ordre séquentiel: 

  1. BeginRequest
  2. AuthenticateRequest
  3. AuthorizeRequest
  4. ResolveRequestCache
  5. AcquireRequestState
  6. PreRequestHandlerExecute
  7. PostRequestHandlerExecute
  8. ReleaseRequestState
  9. UpdateRequestCache
  10. EndRequest

Les événements suivants sont disponibles pour les modules avec lesquels se synchroniser pour chaque transmission de demande. L'ordre de ces événements est non déterministe. 

  • PreSendRequestHeaders
  • PreSendRequestContent
  • Erreur

Voir l'article pour plus d'informations.

77
Jader Dias

Documentation MSDN Library:

Voici les événements (en gras) et les autres étapes du pipeline de demandes pour ASP.NET 4.0:

  1. Validez la demande, qui examine les informations envoyées par le navigateur et détermine si elles contiennent des balises potentiellement malveillantes.
  2. Effectuez un mappage d'URL, si des URL ont été configurées dans la section UrlMappingsSection du fichier Web.config.
  3. Générez l'événement BeginRequest.
  4. Générez l'événement AuthenticateRequest.
  5. Générez l'événement PostAuthenticateRequest.
  6. Générez l'événement AuthorizeRequest.
  7. Générez l'événement PostAuthorizeRequest.
  8. Générez l'événement ResolveRequestCache.
  9. Générez l'événement PostResolveRequestCache.
  10. [IIS 5.0/6.0] En fonction de l'extension du nom de fichier de la ressource demandée (mappée dans le fichier de configuration de l'application), sélectionnez une classe qui implémente IHttpHandler pour traiter la demande. Si la demande concerne un objet (page) dérivé de la classe Page et que la page doit être compilée, ASP.NET compile la page avant d'en créer une instance. [IIS 7.0] Générez l'événement MapRequestHandler. Un gestionnaire approprié est sélectionné en fonction de l'extension de nom de fichier de la ressource demandée. Le gestionnaire peut être un module de code natif tel que IIS 7.0 StaticFileModule ou un module de code managé tel que la classe PageHandlerFactory (qui gère les fichiers .aspx).
  11. Générez l'événement PostMapRequestHandler.
  12. Générez l'événement AcquireRequestState.
  13. Générez l'événement PostAcquireRequestState.
  14. Générez l'événement PreRequestHandlerExecute.
  15. Appelez la méthode ProcessRequest (ou la version asynchrone IHttpAsyncHandler.BeginProcessRequest) de la classe IHttpHandler appropriée pour la demande. Par exemple, si la demande concerne une page, l'instance de page actuelle gère la demande. 
  16. Générez l'événement PostRequestHandlerExecute.
  17. Générez l'événement ReleaseRequestState.
  18. Générez l'événement PostReleaseRequestState.
  19. Effectuez un filtrage des réponses si la propriété Filter est définie.
  20. Générez l'événement UpdateRequestCache.
  21. Générez l'événement PostUpdateRequestCache.
  22. [IIS 7.0] Déclenche l'événement LogRequest.
  23. [IIS 7.0] Déclenche l'événement PostLogRequest.
  24. Générez l'événement EndRequest.
  25. Générez l'événement PreSendRequestHeaders.
  26. Générez l'événement PreSendRequestContent.

Remarque: les événements MapRequestHandler, LogRequest et PostLogRequest sont pris en charge uniquement si l'application s'exécute en mode intégré dans IIS 7.0 et avec .NET Framework 3.0 ou version ultérieure.

48
Michael Liu

Voulez-vous appeler la méthode pour la mise en cache dans l'événement PreSendRequestContent de httpmodule. Le problème est qu’il ya un en-tête et un pied de page Web ajoutés selon les besoins des clients dans mon application et que je ne pouvais pas mettre en cache le contenu des images, javascript et css. Actuellement, j'utilise la méthode ReleaseRequestState de httpmodule.

0
bhaumik pandit

La réponse acceptée est obsolète. Voici la liste des événements dans l'ordre dans lequel ils sont levés selon la documentation :

  1. BeginRequest

  2. AuthenticateRequest

  3. PostAuthenticateRequest

  4. AuthorizeRequest

  5. PostAuthorizeRequest

  6. ResolveRequestCache

  7. PostResolveRequestCache

    Après l'événement PostResolveRequestCache et avant l'événement PostMapRequestHandler, un gestionnaire d'événements (qui correspond à une page qui correspond à l'URL de la demande) est créé. Lorsqu'un serveur exécute IIS 7.0 en mode intégré et au moins la version 3.0 de .NET Framework, l'événement MapRequestHandler est déclenché. Lorsqu'un serveur exécute IIS 7.0 en mode classique ou dans une version antérieure d'IIS, cet événement ne peut pas être géré.

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. LogRequest

  18. PostLogRequest

  19. EndRequest

0
Lews Therin