当前位置: 代码迷 >> Web Service >> 如何让aspx页面的Session和WebService的Session公用
  详细解决方案

如何让aspx页面的Session和WebService的Session公用

热度:328   发布时间:2016-05-02 02:55:51.0
怎么让aspx页面的Session和WebService的Session公用
就是在应用程序一个aspx页面上定义一个Session,然后让该页面访问WebService,让WebService和页面使用一个Session把刚才定义的东西取出来,我是这么做的
Default.aspx.cs
C# code
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Net;public partial class _Default : System.Web.UI.Page {    protected void Page_Load(object sender, EventArgs e)    {        Session["Message"] = "Message";        localhost.SessionService ss = new localhost.SessionService();        ss.CookieContainer = new CookieContainer();        Cookie cookie = new Cookie("ASP.NET_SessionId", Session.SessionID);        cookie.Domain = "localhost";        cookie.HttpOnly = true;        cookie.Path = "/";        ss.CookieContainer.Add(cookie);        string message=ss.GetSession();        int i = 0;        i++;    }}


SessionService.asmx
C# code
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;/// <summary>///SessionService 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService]public class SessionService : System.Web.Services.WebService {    public SessionService () {        //如果使用设计的组件,请取消注释以下行         //InitializeComponent();     }    [WebMethod(EnableSession=true)]    public string GetSession() {        if (Session["Message"] != null)            return Session["Message"].ToString();        else            return "NoSession";        }    }

但是很奇怪,第一次访问SessionService.asmx Session["Message"]为空,再刷新一次Default.aspx SessionService.asmx可以访问Session["Message"]了,但是响应超时!

------解决方案--------------------
好像要把session发送过来?
不过,我有点奇怪,同一个网站下面,还需要webservice吗?
  相关解决方案