2017-09-19 1 views
0

ASP.NET에서 설계되었으며 asmx 웹 서비스를 사용하는 응용 프로그램이 있습니다. 나는 포스트 백을 사용하지 않고 jquery를 통해 페이지 메서드를 호출한다. 그리고 뒤에있는 코드에서 나는 웹 서비스를 호출하고있다. 아래의 샘플 호출을 참조하십시오 : 응용 프로그램에 액세스하는 사용자의 수가 적은이있을 때asmx 웹 서비스에 대한 동시 ASP.NET 요청

$.ajax({ 
 
       type: 'POST', 
 
       contentType: "application/json; charset=utf-8", 
 
       dataType: 'json', 
 
       data: JSON.stringify({ 'loginId': loginId, 'password': pass}), 
 
       url: 'Default.aspx/VerifyLogin', 
 
       success: function (d) { 
 
        debugger; 
 
        if (d.d == 'OK') { 
 
         window.location = "Home.aspx?uq=" + d.d; 
 
        } 
 
        else { 
 
         alert("Username/Password missing or wrong"); 
 
        } 
 
       }, 
 
       error: function (err) { 
 
        debugger; 
 
        alert(error); 
 
       } 
 
      });

모든 것이 잘 작동합니다.

내 사용자가 다른 데이터를 기반으로 일부 데이터를 데이터베이스에 삽입하고 있습니다. 여러 사용자가 응용 프로그램에 액세스 할 때 데이터 불일치 문제가 발생합니다. "X"가 "A"라고 말하는 데이터를 업데이트한다고 가정하고 다른 사용자 "Y"가 데이터를 "B"라고 말하면 데이터 "A"에 대해 작성 또는 업데이트 된 사람이 "Y"로 변경됩니다.

여러 사용자가 동시에 데이터를 업데이트 할 때 이러한 문제를 방지하려면 코드에서 어떻게 변경해야합니까?

+0

를 참조하십시오 데이터 또는 낙관적 동시성 업데이트를위한 타임 스탬프를 사용해야합니다. 각 게시물은 diff 요청으로 간주됩니다. 웹 서비스에서 정적 변수를 사용 했습니까? –

+0

정적 필드가 없지만 HttpContext.Current.Session에서 세션 값을 가져 오는 중입니다. 두 동시 요청이 오면 HttpContext.Current.Session을 재정의 할 수 있습니까? –

답변

관련 문제