文档章节

ASP.NET WebService 中使用 ASP.NET_SessionId

彭博
 彭博
发布于 2012/03/09 12:53
字数 512
阅读 67
收藏 0

     今天在帮助同事解决对WebService进行 Web References 调用问题:当调用webservice第一个方法Method1发现服务端Set-Cookie: ASP.NET_SessionId=*****保存了ASP.NET的会话状态。接着当我再调用webservice的第二个方法Method2时发现无法正确返回服务器端处理结果

也就是说webservices进行http post 的时无法正常响应服务端。感觉问题就出在cookie上(Method1调用时服务端进行了Set-Cookie),但是就是始终解决不了问题。接着测试webservices浏览器端访问,一切都是正常的。只怪自己对WebService了解甚少,导致明明知道问题所在,就是无法解决问题。。

    技术问题往往都是这样,当你越想解决它,它就越难快速的被你搞定。于是乎下班回家后冲凉、吃饱后继续尝试解决问题。我突然想到了long long ago 俺写过一篇文章,就是http抓包的文章,文章地址在这里:http://www.cnblogs.com/ryanding/archive/2011/01/17/1936392.html。主要是通过HttpWebRequest、HttpWebResponse 这两大神器来解决问题。后来想想这样做肯定可以搞定这个问题。但是还是稍微过于繁琐了。记得HttpWebRequest 有一个CookieContainer对象,可以解决cookie问题。于是乎就拼命的在WebServcie的Web References实例化对象上找相关属性。最终完美的被我解决了,代码如下:

ConsoleApplication1.WebReference.YourWebServiceName proxy= new ConsoleApplication1.WebReference.YourWebServiceName();

            System.Net.CookieContainer Cookies = new System.Net.CookieContainer();
            proxy.CookieContainer = Cookies;

代码执行完以上信息在执行Method1,因为这玩意才开始 Set-Cookie...

接着在执行Method2一切都OK了。

这说明了 proxy.CookieContainer存储了客户端的 ASP.NET_SessionId。这样以后每次通过webservice 方法调用时,都会将ASP.NET_SessionId传递到服务器端。

    注:该WEBSERVICES 是客户提供的,我们不能随便修改它的代码。

     我想应该也有不少人碰见了类似的问题。本文权当方便后来人吧。


原文链接: http://www.cnblogs.com/ryanding/archive/2011/09/15/2178146.html

本文转载自:http://www.cnblogs.com/ryanding/archive/2011/09/15/2178146.html

共有 人打赏支持
彭博

彭博

粉丝 392
博文 1071
码字总数 6801
作品 2
深圳
程序员
私信 提问
创建一个基于ASP.NET 2.0的JSON WebService

以前做的WebService基本都只是ASP.NET来调用,所以没考虑比较深入。今天有位JAVA的同事需要调用我的WebService,希望返回JSON类型的数据。原本以为是很简单的一个功能,真正做起来才发现在A...

长平狐
2012/11/06
2.1K
0
[ASP.NET] Session 详解

阅读本文章之前的准备   阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。   懂得ASP/ASP.NET编程   了解ASP/ASP.NET的Session模型 ...

酱哥哥
2014/03/17
0
0
asp.net Session详解(再转)

原创:heallven 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解。否则,阅读过程中会在相应的内容上遇到不同程度的问题。 懂得ASP/ASP.NET编程 了解ASP/ASP.NET的Session模...

厅一一
2008/06/30
0
0
ASP.NET中在不同的子域中共享Session的具体方法

这篇文章介绍了ASP.NET中在不同的子域中共享Session的具体方法,有需要的朋友可以参考一下 今天遇到了这个问题,于是研究了一下。要解决这个问题,首先就要明白一些Session的机理。Session在...

jrytsqd
2013/10/25
236
1
ASP.NET性能优化之分布式Session

如果我们正在使用Session,那么构建高性能可扩展的ASP.NET网站,就必须解决分布式Session的架构,因为单服务器的SESSION处理能力会很快出现性能瓶颈,这类问题也被称之为Session同步。微软有...

晨曦之光
2012/06/08
106
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows 10 设置 Java 环境变量

首先你需要在我的电脑中打开,找到环境变量属性。 找到环境变量属性 找到环境变量属性后单击将会看到下面的设置界面。 在这个界面中设置高级系统设置。 环境变量 在弹出的界面中选择设置环境...

honeymose
9分钟前
0
0
用any-loader封装jQuery的XHR —— 随便写着玩系列

哎,都说没人用JQuery啦,叫你别写这个。 其实我也是好高骛远使用过npm上某个和某个很出名的XHR库,嗯,认识我的人都知道我喜欢喷JQ,以前天天喷,见面第一句,你还用JQ,赶紧丢了吧。但我也...

曾建凯
今天
4
0
聊聊storm的AggregateProcessor的execute及finishBatch方法

序 本文主要研究一下storm的AggregateProcessor的execute及finishBatch方法 实例 TridentTopology topology = new TridentTopology(); topology.newStream("spout1", spout......

go4it
今天
3
0
大数据教程(7.5)hadoop中内置rpc框架的使用教程

博主上一篇博客分享了hadoop客户端java API的使用,本章节带领小伙伴们一起来体验下hadoop的内置rpc框架。首先,由于hadoop的内置rpc框架的设计目的是为了内部的组件提供rpc访问的功能,并不...

em_aaron
今天
5
0
CentOS7+git+github创建Python开发环境

1.准备CentOS7 (1)下载VMware Workstation https://pan.baidu.com/s/1miFU8mk (2)下载CentOS7镜像 https://mirrors.aliyun.com/centos/ (3)安装CentOS7系统 http://blog.51cto.com/fengyuns......

枫叶云
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部