2009-03-31 15 views
3

Lorsque vous travaillez avec des modules HTTP, quelqu'un a-t-il remarqué que les deux derniers événements du pipeline, PreSendRequestHeaders et PreSendRequestContent, ne sont pas toujours exécutés?Pourquoi PreSendRequestHeaders et PreSendRequestContent ne s'exécutent-ils pas systématiquement?

J'ai vérifié que le code lié à EndRequest s'exécutera, mais ne le sera pas lorsqu'il sera lié à PreSendRequestHeaders ou à PreSendRequestContent.

Y a-t-il une raison pourquoi? Je pensais que c'était peut-être un problème de cache (avec un 304 Non Modifié, vous n'envoyez pas de contenu ...), mais j'ai effacé les caches et déterminé que le serveur renvoie 200 OK, ce qui indiquerait qu'il envoyait du contenu .

Ceci est un problème car le StatusCode de la réponse est par défaut 200 et je crois comprendre qu'il n'est pas mis à jour à quelque chose comme un 404 ou 206 jusqu'à ces deux dernières méthodes. Si je vérifie StatusCode pendant EndRequest, il sera toujours lu 200

Répondre

0

Je l'injection d'un en-tête de cookie sur les PreSendRequestHeaders événement et ont encore rencontré un problème de ce pas de tir ...

0

Peut-être que cela a à voir avec HttpResponse.BufferOutput. Si la mise en mémoire tampon est désactivée, il semble que tous les en-têtes et une partie du contenu aient déjà été envoyés au moment où ces événements se déclenchent.

1

n'est-ce pas lié au pipeline intégré IIS 7?

Pour être vérifié, mais je pense que ces événements ne sont déclenchés que lorsque IIS 7 fonctionne dans un pipeline intégré.

+0

Je pense que vous avez raison mais j'ai le même problème et il ne se déclenche pas même si IIS fonctionne en mode pipeline intégré. – daustin