Tâches du service à long terme accessibles AJAX bloquant les demandes de service AJAX subséquentes dans un environnement compatible Compatibilité / Sessions ASP.NET

J'ai un problème décrit et résolu sur le lien suivant

Http://blogs.msdn.com/b/silverlightws/archive/2009/09/30/having-a-pollingduplex-service-and-any-other-wcf-service-in- the-same-website-causes- Silverlight-calls-to-be-slow.aspx

… Cependant, je ne peux pas utiliser la solution recommandée (Utiliser la pile HTTP du client) car j'utilise JavaScript et pas Silverlight!

POST /PollingWcfServices/ServiceWcf.svc HTTP/1.1 Accept: */* Content-Length: 564 Content-Type: application/soap+xml; charset=utf-8 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 Host: foo Connection: Keep-Alive Pragma: no-cache Cookie: ASP.NET_SessionId=iyr4sf55rm1kypafjdvlhm55 

Le code d'interrogation suivant est utilisé

  request.onreadystatechange = function () { if (request.readyState == 4) { if (request.status == 200) //Process and Poll again else //Handle errors } request.open("POST", url); request.setRequestHeader("Content-Type", "application/soap+xml;charset=utf-8"); request.send(httpBody); 

Malheureusement, la session est définie dans le cookie, le serveur essaiera de traiter successivement les mêmes appels de service de session. C'est un énorme problème avec le long processus de sondage. Une solution simple serait de supprimer le Cookie des en-têtes, afin de ressembler à un sondage Silverlight utilisant la pile client Silverlight.

Request.setRequestHeader, n'ajoutera que la valeur d'en-tête; Cela ne semble pas faire de différence puisque le cookie semble être réglé sur la tête.

La seule solution de Mozilla, trouvée à

Http://www.michael-noll.com/tutorials/cookie-monster-for-xmlhttprequest/

request.channel.loadFlags |= Ci.nsIRequest.LOAD_ANONYMOUS;

Ne supprime pas non plus le cookie ASP.NET_SessionID non plus. Bien qu'il supprime le cookie ASPXAUTH.

Est-ce que quelqu'un a une solution pour les tâches de service à long terme accessibles AJAX qui ne bloquent pas les demandes de service AJAX subséquentes dans un environnement compatible Compatibilité / Sessions ASP.NET?

La réponse est ici …

Dans .NET 4, vous pouvez le faire dans Application_BeginRequest

If (Context.Request.Path.EndsWith ("xxx.svc")) Context.SetSessionStateBehavior (SessionStateBehavior.ReadOnly);

– Comment forcer un WCF hébergé IIS ou ASMX [webservice] à utiliser l'objet de session en lecture seule?

En changeant SessionStateBehavior du service de rappel, j'ai pu isoler ce service pour être exécuté de manière non séquentielle et arrêter les blocages.

Merci Cine ( https://stackoverflow.com/users/264022/cine )