2017-02-17 1 views
0

Нужна помощь по настройке и получению объекта из сеанса в веб-службах asp.net. Я сохраняю сеанс в одном методе службы, и когда пытаюсь его восстановить, он просто дает null. Пример кода ниже для сохранения сеансаНевозможно сохранить и получить значение из сеанса веб-службы ASMX asp.net на AJAX Call

[WebMethod(EnableSession = true)] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string setObj(NameValue[] formVars) 
    { 
     MyObject obj = new MyObject(); 
     obj.vlaue = "1"; 
     Session["obj"] = (object) obj; 
     return new JavaScriptSerializer().Serialize(""); 
    } 

Для получения сессии:

[WebMethod(EnableSession = true)] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string getObj(NameValue[] formVars) 
    { 
     MyObject obj = new MyObject(); 

     obj = (MyObject)Session["obj"] ; 
     return new JavaScriptSerializer().Serialize(obj.value); 
    } 

В приведенных выше данных кода сеанса является недействительным. Я также добавить состояние сеанса в веб-конфигурации, но не будет работать:

<system.web> 

<pages> 
    <namespaces> 
    <add namespace="System.Web.SessionState"/> 
    </namespaces> 
</pages> 
<sessionState mode="InProc"></sessionState> 

Спасибо.

+0

Во-первых .. использование HttpContext.Current.Session .. Также почему вы бросаете свой Myobject на объект, когда вы храните его в сеансе? Просто сохраните его как MyObject. – Wheels73

+0

@ Wheels73 Я использовал HttpContext.Current.Session, но это тоже не сработает. также пытался напрямую хранить Myobject в сеансе. Все еще дает Null при следующем вызове метода .. :( –

+0

вы проверили sessionid на объекте Session при настройке и извлечении ... они одинаковы? – Wheels73

ответ

0

Я сохраняю сеанс в одном методе обслуживания и когда пытаюсь его получить, просто дает null.

Если эти 2 метода находятся во время одного и того же запроса, он будет равен нулю. переменная сеанса в .Net устанавливается на стороне клиента в заголовках ответов, но когда вы пытаетесь их прочитать, они из заголовков запросов клиента, которые не изменялись с момента запроса.

Смежные вопросы