2015-01-08 4 views
0

서비스가 정상적으로 작동하고 올바른 응답을 반환합니다. 문제는 내가 서비스를 호출 한 후 세션을 사용하면 서비스 내부에서 호출 한 범위 밖의 null로 변환된다는 것입니다.웹 서비스를 호출 한 후 세션이 null로 반환됩니다.

편집 1 : 나는이 줄을 주석 경우,, 그리고 [File.WriteAllText (경로, TXT)] 추적 후에, 나는 파일 에 텍스트 쓰기 서비스 MyOperation 방법에서 선이 있다는 것을 발견 세션이 잘 작동합니다. 어떤 설명?

protected void Button1_Click(object sender, EventArgs e) 
{ 
    client = new MySvc.MyServiceClient(); 
    var res = client.MyOperation(); // If I comment this line, sessions works fine. 
    Session["val"] = 2000; 
} 

protected void Button2_Click(object sender, EventArgs e) 
{ 
    var foo = Session["val"]; // always null 
} 

도와주세요.

답변

1

try-catch 블록의 Button1_Click 또는 try 블록의 처음 두 줄과 finally 블록의 마지막 줄만 감싸십시오.

다음 행 (Session [ "val"] = 2000;)이 올바르게 수행되지 못하게하는 예외가있을 수 있습니다.

+0

재생 해 주셔서 감사합니다. 마지막 줄 이후에 중단 점을 설정합니다. 오류가 발생하지 않고 세션이 범위 내에서 성공적으로로드됩니다. – Ibrahim

+0

소리가 까다 롭습니다. 한 가지 다른 시도는 global.asax 파일에 몇 가지 중단 점을 배치하는 것입니다. 특히 Session_End 블록과 Application_Error 블록 세션이 지워지면, 세션 중 하나를 거쳐야하는데, 그러면 더 많은 정보를 얻을 수 있습니다. 이것은 세션 모드가 inproc라고 가정합니다. 행운을 빕니다! – AnotherDeveloper

관련 문제