Breaking Change in .net 4.5 CallContext lors de la publication d’une publication HTTP sur un ashx?

Je viens d’installer .Net 4.5 et j’ai remarqué qu’une application Web existante, toujours exécutée sous .Net 4, échouait lorsque j’essayais de récupérer un élément du CallContext, alors qu’il fonctionnait parfaitement à pour la dernière année.

Sur l’événement AuthenticateRequest de l’application, nous utilisons l’identité de l’utilisateur pour charger plus d’informations de sécurité sur l’utilisateur. Ceci est ensuite ajouté au CallContext pour une utilisation ultérieure.

par exemple

protected void Application_AuthenticateRequest(object sender, EventArgs e) { if (HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated) { // set someValue CallContext.SetData(ContextIdentifier, someValue); } } 

La valeur du callcontext est extraite à des étapes ultérieures du cycle de vie. Par exemple, CallContext.GetData (ContextIdentifier)

Toutefois, lors de la demande d’un fichier .ashx à une demande HTTP “POST”, la valeur est maintenant nulle, mais sur une demande “GET”, la valeur est correcte.

Je ne trouve pas de raison documentée expliquant pourquoi cela a soudainement changé ou si cela est maintenant intentionnel et pourquoi cela affecterait les applications .Net 4 existantes?

Ma solution évidente est de mettre également les données sur HTTPContext, sans toutefois comprendre la raison pour laquelle je ne suis pas sûr que l’utilisation de CallContext causera des problèmes ailleurs!

Toute aide / compréhension serait reçue avec gratitude

http://forum.springframework.net/showthread.php?572-CallContext-vs-ThreadStatic-vs-HttpContext

Il semble que c’était le pipeline http qui disposait du contexte d’appel, mais je ne peux que le voir maintenant à cause d’améliorations.