2013-04-08 3 views
2

드롭 다운 목록이있는 웹 응용 프로그램이 있습니다. 새 인덱스를 선택하면 Session_Start 이벤트에 만들어지는 세션 변수에 값을 저장해야합니다.세션 변수 + WebMethod 변수 값이 업데이트되지 않습니다.

[WebMethod(EnableSession = true)] 
public string getValue() 
{ 

    var testVal = Session["testValue"].ToString(); 

    return testVal.ToString(); 
} 
: selectedIndex의에

protected void Session_Start(object sender, EventArgs e) 
{ 
    Session.Add("testValue", "test"); 
} 

이벤트 내가 이런 세션 변수의 값을 검색 내가 웹 서비스를이

Session["testValue"] = DropDownList.SelectedItem.Text; 

같은 새 값을 설정하고있어 변경

콘솔 앱에서 웹 서비스에 연결하고 getValue()에 의해 반환 된 값을 검색하지만 초기 값은 항상 반환됩니다. 제발, 제발요.

+0

드롭 다운 목록에있는 항목의 값이 다른지 확인하십시오 – Srinivas

+0

'콘솔 앱에서 온 것입니다. '- 콘솔 앱과 웹 브라우저가 같은 세션을 공유 할 것으로 기대하십니까? –

+0

안녕하세요, 리차드, 내 의도는 webMethod가 webservice.asmx에 액세스 할 때 현재 수행하고있는 세션 변수 값을 검색하고 값을 적절하게 반환하는 것입니다. 콘솔 앱에서 URL에 액세스 할 때 동일한 동작이 발생하지 않아야합니까? – krafo

답변

0

값은 변경되지 않습니다. 값을 변경하지 않았습니다. 그래서 아무것도 실수가

protected void dropdownlist1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
Session["testvalue"] = dropdownlist1.SelectedItem.text; 
} 

또한 두 부분에

System.Web.HttpContext.Current.Session["testvalue"] 

으로 시도 드롭 다운리스트에서 아마

protected void Page_Load(object sender, EventArgs e) 
{ 
if (!Page.IsPostBack) 
{ 
    Session["testValue] = dropdownlist1.SelectedItem.text; 
} 
} 

그리고있다

public string getValue() 
{ 
    var testVal = Session["testValue"].ToString(); 
    return testVal.ToString(); 
} 

을 예상

+0

메서드는 세션 변수의 값을 변경하지 말아야합니다. 세션 변수의 값은 DropDown – krafo

+0

의 SelectedIndexChanged 이벤트에서 변경됩니다. 세션 변수 값은 url을 통해 webservice에 액세스하고 클라이언트가 선택한 값을 반환 할 때부터 변경됩니다. 콘솔 응용 프로그램에서 webmethod에 액세스 할 때의 문제 – krafo

+0

정적 방법으로 시도하십시오. +1 –

0

드롭 다운 목록에있는 항목의 값이 다른지 확인하십시오. 선택한 색인 변경 이벤트가 실행되는 데 필수적입니다.

1

콘솔 앱을 실행할 때 새로운 세션이 생성 된 것 같습니다. Application.Set 및 Application.Get을 사용하여 응용 프로그램 상태를 사용하면이 문제가 해결됩니다. 다중 사용자가 시스템을 사용할 때 문제가되지 않기를 바랍니다.