首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

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

2012-04-15 
怎么让aspx页面的Session和WebService的Session公用就是在应用程序一个aspx页面上定义一个Session,然后让

怎么让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吗?

热点排行