나는 다음과 같은 링크AJAX 환경
에서 설명하고 해결하는 데 문제가있어 가능하게하는 ASP.NET 호환성/세션에서 하위 필연의 AJAX 서비스 요청을 차단 접근 장기 실행 서비스 작업 .. 하지만 나는 자바 라이트와 실버 라이트를 사용하지 않기 때문에 권장 된 솔루션 (클라이언트 HTTP 스택 사용)을 사용할 수 없다!
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
다음 폴링 코드는 세션이 쿠키에 설정되어 있기 때문에 불행히도, 서버가 시도하고 공정 동일한 세션 서비스가 순차적으로 호출
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);
을 사용한다. 이것은 긴 투표 과정에서 큰 문제입니다. 간단한 해결책은 Silverlight 클라이언트 스택을 사용하여 Silverlight 폴링처럼 보이도록 헤더에서 쿠키를 제거하는 것입니다.
request.setRequestHeader는 헤더 값에만 추가합니다. 이것은 쿠키가 .send의 머리에 설정되어있는 것처럼 보이기 때문에 어떤 차이도없는 것처럼 보입니다.
모질라 유일한 해결책은, SEM은 어느 ASP.NET_SessionId의 쿠키를 제거하지 않습니다
http://www.michael-noll.com/tutorials/cookie-monster-for-xmlhttprequest/
request.channel.loadFlags |= Ci.nsIRequest.LOAD_ANONYMOUS;
에서 발견했다. 그것이 ASPXAUTH 쿠키를 제거하더라도.
누구나 ASP.NET 호환성/세션 사용 환경에서 하위 AJAX 서비스 요청을 차단하지 않는 AJAX 액세스 가능한 장기 실행 서비스 작업에 대한 해결책이 있습니까? 답은 여기에있다