2012-12-13 2 views
0

ajax 호출을 통해 세션이 유지되는지 알고 싶습니다. 서버에 아약스 GET 호출을 만드는 Sencha (JS) 클라이언트가 있습니다. 서버 쪽은 WCF C#을 사용하여 구현됩니다. 이제 첫 번째 호출을 시작하면 세션이 시작되고 시작되는 것 같습니다. 하지만 응용 프로그램이 첫 번째 호출에서 저장 한 세션에서 일부 값을 검색하는 서버를 필요로하는 다음 호출을 할 때 나는 세션을 설정하는 첫 번째 호출로 오류가 발생합니다. 그래서 세션을 믿을 수 있도록 오류를 던지고 있습니다. 시작됩니다. 하지만 두 번째 호출에서는 오류가 발생합니다.ajax를 통한 wcf 서비스 호출의 세션 오류

주의 사항 : 이것은 응용 프로그램을 통해 호출 할 때만 발생합니다. 내가 브라우저에서 모든 것을 완벽하게 처리하는 GET url을 간단히 호출한다고합니다.

이유가 무엇인지 알려주세요. 나는 실종됐다.

+0

정확히 어떤 오류가 있습니까? – dotNETbeginner

+0

내 생각 엔 WCF가 세션 상태를 사용하도록 구성되지 않았습니다 (가능한 경우 어떻게/확실하지 않음). –

답변

1

세션은 세션 쿠키를 사용하여 매핑됩니다.

응용 프로그램이 실제로 실패한 호출에서 세션 쿠키를 전달하는지 확인해야합니다. 작동하는 호출의 모든 쿠키와 실패하고 비교하는 호출을 열거하십시오. 계속

:

나는 보통 내가 다시 하위 시스템을 호출하는 외관으로 사용하는 일반 핸들러 (.ASHX)를 통해 아약스을한다. 이 처리기에서는 매개 변수 변환과 json (de) serialization을 수행합니다. WCF 레이어를 노출시키지 않고 그러한 접근 방법을 찾아야할까요?

+0

+1. 여기에는 2 가지 이유 중 하나가 포함됩니다 : 쿠키가 요청과 함께 오지 않습니다 (Fiddler를 통해 eaisly 확인할 수 있음). –

+0

좋아요 .. 요점이 있어요 ...하지만 sencha를 통한 아약스 호출이 세션 쿠키를 전달하지 못하는 경우 누구나 Sencha ajax 호출 (아약스 프록시)이나 자바 스크립트 아약스 호출을 통해 쿠키를 수동으로 전달하는 방법을 말해 줄 수 있습니다. – indra

+0

작동중인 호출, 거기에 응답 헤더에 내가 이것을 얻고있다 - 설정 - 쿠키 : ASP.NET_SessionId = pph0w1k3ag0v3a1ehde1tvl3; 경로 = /; HttpOnly. 나는 다음 호출에서 이것을 포워드해야만한다. 그것을하는 방법? 내가 그것을 보낼 수있는 후속 호출에 명시적인 헤더를 추가해야합니까? PLZ 도움말 – indra

관련 문제