Quand est-ce que vous faites cela? est-ce dans un événement de module? Il devrait également être parfaitement réalisable dans une piscine intégrée. En fin de ligne il y a des changements sur la façon dont ASP.NET se connecte à IIS lors de l'exécution en mode intégré qui le rend "plus de première classe". Cela signifie que certains événements se déclenchent avant, par exemple, Application_Start va maintenant se déclencher en dehors du contexte d'une requête réelle. D'autres exemples s'attendent à avoir une identité authentifiée par Windows dans BeginRequest, puisque maintenant BeginRequest arrive même avant que IIS s'authentifie, ce qui n'était pas le cas dans le passé. Si votre application dépend de l'ancien comportement incorrect, vous pouvez toujours changer votre AppPool pour qu'il fonctionne en mode classique et cela fonctionnera très bien.
Vous devriez être en mesure de saisir la demande dans toutes les notifications qui demande spécifiques telles que BeginRequest, EndRequest, PostAuthorizeRequest, etc. En outre, je recommande de ne pas utiliser HttpContext.Current car qui engage un regard supplémentaire dans un hachage table et généralement vous pouvez obtenir directement le contexte d'une autre manière, en particulier dans le contexte d'un module, donc par exemple si vous manipulez la BeginRequest, vous devriez être en mesure de le faire:
HttpApplication application = (HttpApplication)sender;
HttpContext context = application.Context;
et vous économiserez la recherche . De votre description, il semble que vous deviez implémenter un module qui gère BeginRequest et EndRequest et que tout devrait bien se passer.
Pas une réponse à votre question, mais une alternative. Pourquoi ne pas créer une classe 'BasePage' qui hérite de la classe' System.Web.Ui.Page'. Maintenant, toutes vos pages peuvent hériter de 'BasePage'.Ensuite, à partir de là, vous pouvez ajouter votre propre événement 'Page_Load' dans' BasePage' qui effectue la journalisation. –