2011-03-17 26 views
7

我剛發現問題與webmethod無關。無法在asp.net中的webmethod中獲取會話

這是由另一個問題引起的。

我將Session["PhotoId"]設置爲普通的aspx。 但我無法檢索aspx頁面的webMethod中的值。

[WebMethod(EnableSession=true)] 
    public static string Submit(string data1, ...) 
    { 
     string test = HttpContext.Current.Session["PhotoId"]; // test is null 
    } 

我該怎麼辦?

+1

檢查sessionid是否相同。 – Aravind 2011-03-17 15:24:34

回答

13

正如我所見,在這裏一切都應該沒問題。

只要HttpContext.Current.Session不爲null,會話狀態在此處受支持。 請確保您設置了Session [「PhotoId」]。

您可以測試它是否是同一個會話在正常ASPX和檢查的WebMethod

HttpContext.Current.Session.SessionID 

+0

會話ID不同。這有助於我解決我的問題。謝謝。 – Billy 2011-05-06 03:53:31

+3

你能分享你如何解決問題? – 2013-07-31 11:37:47

+0

SessionId的方式或原因可能會有所不同? – ibubi 2017-02-10 08:48:28

0

您應該使用ToString()方法將會話用作字符串。

[WebMethod(EnableSession=true)] 
public static string Submit(string data1, ...) 
{ 
    string test = HttpContext.Current.Session["PhotoId"].ToString(); 
}