高分求教:web service里的Session好象不起作用
我的Web service有两个方法:
[WebMethod(EnableSession = true)]
public void SetPara(string connstring)
{
Session.Add("connstring",connstring);
}
[WebMethod(EnableSession = true)]
public string getConnString()
{
if(Session["connstring"]!=null)
{
return Session["connstring"];
}
else
{
return "err";
}
}
在asp.net是这样调用的:
localhost.DataPool dp=new localhost.DataPool();//上面的那个webservice
dp.SetPara("test");
Label1.Text=dp.getConnstring();
这个asp.net返回的Label1居然是err,就是说web service里的Session没有起作用。
这是怎么回事?请指教
我的目的是一个web service实例的两个方法有共有的数据,有其他好的方法可以实现吗?
谢谢
问题点数:80、回复次数:6Top
1 楼szwebnet(赤水流星)回复于 2003-06-02 01:13:59 得分 0
return Session["connstring"].ToString();Top
2 楼szwebnet(赤水流星)回复于 2003-06-02 01:14:58 得分 0
and:
public void SetPara(string connstring)
{
Session.Add["connstring"]=connstring);
}Top
3 楼tanrui(Tanruy)回复于 2003-06-02 10:21:35 得分 0
我稍做了修改:
public void SetPara(string connstring)
{
Session.Add("connstring",connstring);
}
public string getConnString()
{
if(Session["connstring"]!=null) return Session["connstring"].ToString();
else return "err";
}
这样直接测试这个web service是没有问题的,但是只要是象上面我说的在asp.net里调用就不行,返回的是err,就是说调用getConnString()的时候这个Session已经不在了。
要是把这个Session在webservice的构造函数里建立,则直接测试web service都有问题了!
web service在使用的时候是作为一个类来用的吗?如果是的话,怎么会出现这样的情况呢?
而且web service类的数据成员不是每个方法共有的,好象是每个方法都有这么一些数据成员。
怎么能在两个方法里共享数据?有人研究过吗?Top
4 楼xiongliang2003()回复于 2003-06-02 10:54:40 得分 0
你这样做无非是要让信息能跨页面,怎么不直接在asp.net页面中用Session来传Top
5 楼tanrui(Tanruy)回复于 2003-06-03 00:23:43 得分 0
我只是觉得很奇怪,难道web service实际有意义的只是他的WebMethod?
要是他是一个远程调用的实例就好了...
只是稍做研究Top
6 楼saucer(思归)回复于 2003-06-03 00:26:52 得分 80
localhost.DataPool dp=new localhost.DataPool();
dp.CookieContainer = new CookieContainer();
dp.SetPara("test");
Top




