Ca ne m'étonne pas tellement, à mon avis une fois que la requete est terminé le HttpContext est disposed, ce qui est tout à fait logique, du coup la session & co devient null.
Si tu es courageux regarde dans Reflector où cela peut se passer (je viens de regarder rapidement et je pense que c'est autour de la méthode PipelineRuntime.DisposeHandlerPrivate), cela ne t'avancera surement à rien mis à part comprendre pourquoi cela ne fonctionne pas.
C'est un sujet que je ne connais pas très bien, mais il doit y avoir moyen d'avoir son propre contexte au niveau du thread (peut être en utilisant l'attribut ThreadStaticAttribute mais il doit y avoir plus propre).
Le plus simple pour moi est de se passer de la session, explique nous pourquoi tu en as besoin, on trouvera peut être une solution alternative.
Cyril -
MSP -
MCPD ASP.net & MCTS SQL - Consultant indépendant