WebService的Session问题

jiangdh 2003-08-18 09:09:18
服务端的WebService提供多个方法供客户端调用,其中一个为注册,其他方法则要判断用户是否已注册,然后才能给调用,想用Session保存客户端状态。
客户端有两个按钮,其中一个为注册按钮,现在的情况是:在按钮的Click事件中,两次调用WebService的注册方法,可以观察到第二次调用时,服务端确实已将第一次的状态保存了,但是如果是两次按注册按钮,却发现第一次的状态没有保留,查看了一下以前的帖子,好象都是在一次过程里多次调用WebService方法的例子,我的问题就是:为什么在同一个WEB客户页面,两次过程里调用WebService方法就不能保存状态,而一个过程里多次调用却可以呢?如果我要保存状态,又该如何办呢?
...全文
58 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kain 2003-10-27
  • 打赏
  • 举报
回复
mark
saucer 2003-08-18
  • 打赏
  • 举报
回复
don't create a new proxy object everytime you make a call, but make the service proxy object a member variable of your form class, or save the CookieContainer from the first call, so each following invocation will use the same CookieContainer (which contains the SessionID)
jiangdh 2003-08-18
  • 打赏
  • 举报
回复
谢谢saucer(思归, MS .NET MVP)的例子,你的例子非常好,现在我已经解决了,原来问题的原因在客户端,它需要将Cookie保存下来。结帐!非常感谢!
jiangdh 2003-08-18
  • 打赏
  • 举报
回复
谢谢saucer(思归, MS .NET MVP)的例子,你的例子非常好,现在我已经解决了,原来问题的原因在客户端,它需要将Cookie保存下来。结帐!非常感谢!
jiangdh 2003-08-18
  • 打赏
  • 举报
回复
谢谢saucer(思归, MS .NET MVP) 的答复。
不过,这些我都已做了,不然我怎么能在一次过程里(按一下按钮)两次调用时,保留上次的状态呢,现在的问题是两次按按钮,上次的就保存不住,而一次按钮,两次调用,却可以保存上次的状态。是不是,第二次按按钮,asp.net认为已经不是同一次session了?
saucer 2003-08-18
  • 打赏
  • 举报
回复
you need to

1. enable the session:
[ WebMethod(EnableSession=true)]
public int SessionHitCounter()

2. provide a CookieContainer to your service proxy on the client side

YourService.CookieContainer = new CookieContainer();

see
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebServicesWebMethodAttributeClassEnableSessionTopic.asp

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧