當您使用 Visual C# . NET 使用 CookieContainer 來維護狀態在 Web 服務

2008/03/23

在編寫 WebService 的時候,根據預設值, ASP . NET 工作階段支援之每一個 Web 服務方法已關閉。 您必須明確地啟用工作階段之每一個 Web Service 方法需要工作階段狀態支援。 若要啟用工作階段支援, WebMethod 屬性 (Attribute) 加入 EnableSession 屬性。 如果要執行這項操作,只要於 [WebMethod] 加入 EnableSession Attribute 即可
Example:



 [WebMethod(EnableSession = true)]
public int Counter()
{    int count;
    if (Session["count"] == null)
    {
        count = 1;
    }
    else
    {
        count = (int)Session["count"] + 1;
    }
    Session["count"] = count;
    return count;
}





讀取時要設定一個CookieContainer變數來保留與WebService建立的Session連線
Example:


 private System.Net.CookieContainer CookieContainer_c1;

protected void Btn_TestWebServiceSession_Click(object sender, EventArgs e)
{
    this.s1 = new WebApplication1.EX_Service.Service1();
    if ((System.Net.CookieContainer)Session["CookieC"] == null)
    {
        this.CookieContainer_c1 = new System.Net.CookieContainer();
        Session["CookieC"] = this.CookieContainer_c1;
    }
    else
    {
        this.CookieContainer_c1 = (System.Net.CookieContainer)Session["CookieC"];
    }
    this.s1.CookieContainer = this.CookieContainer_c1;
    this.showMessage(this.s1.Counter().ToString());
}


Reference From : Waffle Chang.


0 意見:

程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.