文档章节

ASP.NET WebService 中使用 ASP.NET_SessionId

彭博
 彭博
发布于 2012/03/09 12:53
字数 512
阅读 66
收藏 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

共有 人打赏支持
彭博

彭博

粉丝 391
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

GO冒泡,二分查找

package mainimport("fmt")func main() {var arr [5]int = [5]int{11,13,9,2,25}maopao(&arr)fmt.Println("arr = ", arr) //[2 9 11 13 25]findIndex := binaryFind(&arr, 0......

汤汤圆圆
31分钟前
1
0
工作2年半跳槽面试阿里,成功拿到offer,凭什么?

2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,...

java知识分子
35分钟前
1
0
讲述下:Linux的10个最危险的命令

导读 Linux命令行佷有用、很高效,也很有趣,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候。这篇文章将会向你介绍十条命令,但你最好不要尝试着去使用。 当然,以下命令通常都...

问题终结者
40分钟前
1
0
分库分表后如何部署上线?

引言 我们先来讲一个段子 面试官:“有并发的经验没?” 应聘者:“有一点。” 面试官:“那你们为了处理并发,做了哪些优化?” 应聘者:“前后端分离啊,限流啊,分库分表啊。。” 面试官:...

Java烂猪皮
45分钟前
1
0
Redis源码阅读笔记-快速列表

快速列表 快速列表(quicklist)是由压缩列表(ziplist)组成的一个双向链表,链表中,每一个节点都是以压缩列表(ziplist)的结构保存。 在 Redis3.2 后加入的新数据结构,在列表键中取代了双向链...

Jian_Ming
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部