2011-05-13 4 views
0

amax를 통해 세션 변수를 업데이트하기 위해 asmx 서비스를 사용하여 많은 호출이 연속적으로 발생하는 경우 문제가 발생합니까?Ajax를 통한 ASMX 서비스 호출이 중단됨 (완료되지 않음)

세션 변수를 업데이트하는 asmx (웹 응용 프로그램 계층에 WCF가없는 레거시 ASP.NET 프로젝트) webservice가 있습니다. 체크 박스를 클릭했을 때이 메서드를 사용하는 ajax 호출이 있습니다. 확인란을 하나씩 클릭하지 않으면 작동합니다 (완료 할 수 있음). ajax 호출이 중단됩니다 (완료하지 않음).

나는 이것이 세션 변수를 업데이트하려고하는 여러 요청과 관련이 있다고 생각하지만 잘 모르겠습니다. 누구든지이 문제에 뛰어 들어 조언을 빌릴 수 있습니까? 참고 : WCF가 가능한 대답 일지는 모르지만 현재 asmx 서비스를 WCF로 변경하지 않아도되는 솔루션이 있는지 궁금합니다.

+0

asmx 파일에 중단 점을 설정하면 여러 개의 확인란을 클릭 할 때 중단 점을 각각 칠 수 있습니까? –

답변

0

ajax를 통해 세션 변수를 업데이트하기 위해 asmx 서비스를 사용하면 연속해서 많은 호출이 이루어질 때 문제가 발생합니까?

예, ASP.NET은 세션 개체가 스레드로부터 안전하지 않기 때문에 이러한 요청을 순차적으로 처리하고 병렬 처리하지 않기 때문에 그렇습니다. 같은 세션의 여러 요청이 일부 ASP.NET 처리기로 전송 된 경우이 처리기가 세션에 쓰는 경우 해당 요청을 대기열에 넣기 만하면됩니다.

+0

이 경우 서비스 요청에 대기열을 완료하는 데 더 많은 시간이 필요할 수 있습니다 ... –

+0

이것은 또한 내 질문에 대한 답변입니다. 감사. –

0

서비스가 세션 변수 내에서 동일한 키만 업데이트하는 경우 값이 변경 될 때까지 항상 쿠키에 로컬로 값을 저장하려고 할 수 있습니다. 그런 다음 값이 변경되면 ASMX 서비스를 호출하여 세션 변수에 새 값을 저장할 수 있습니다.

0

사용하는 AJAX 라이브러리에 따라 다음 통화를 시작하기 전에 이전 실행 통화를 포기할 수있는 옵션이 항상 있습니다. 웹 서비스 호출 방법에 대해 좀 더 자세히 설명 할 수 있다면 새로운 호출을 시작하기 전에 이전 호출을 포기하는 데 도움이 될 수 있습니다.

+0

좋습니다. 나는 AJAX 호출에 대한 요청을 죽이기 위해 중단을 호출 할 수 있다는 것을 알고있다. (나는 jQuery를 사용하고있다.) 나는 asmx 서비스를 오랫동안 복용하는 것에 더 관심이있다. –