2017-02-17 14 views
0

asp.net Webサービスでセッションを設定したり取得したりするのに役立つ必要があります。私は1つのサービス方法でセッションを保存しています。それを取得しようとすると、nullが返されます。サンプルコードは、セッションを取得するためのセッションWebサービスセッションから値を取得できないAJAXコールでASMX asp.net

[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); 
    } 

はnullです。私はまた、ウェブの設定でセッション状態を追加しましたが、動作しません。

<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

セッションオブジェクトのセッションIDを設定して取得したときにセッションIDを確認しましたか?同じですか? – Wheels73

答えて

0

セッションを1つのサービス方法で保存していますが、取得しようとするとnullが返されます。

これらの2つのメソッドが同じリクエスト中にある場合、nullになります。 .Netのセッション変数は、応答ヘッダのクライアント側に設定されますが、リクエストを行ったときに変更されていないクライアントのリクエストヘッダからのものです。

関連する問題