博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET WebService 中使用 ASP.NET_SessionId
阅读量:6875 次
发布时间:2019-06-26

本文共 1159 字,大约阅读时间需要 3 分钟。

  hot3.png

     今天在帮助同事解决对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抓包的文章,文章地址在这里:。主要是通过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 是客户提供的,我们不能随便修改它的代码。

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

原文链接:

转载于:https://my.oschina.net/dtec/blog/43263

你可能感兴趣的文章
mysql一键编译安装脚本,MySQL 主主实施部署,及读写分离
查看>>
zabbix之固定端口监控redis ,zabbix监控memcached
查看>>
[1line]用wget镜像网站
查看>>
PHP画图时出现“因其本身有错无法显示”的问题的解决办法
查看>>
查看和修改awr报告保留时间
查看>>
微信浏览器返回上一页停留在原位置
查看>>
nfs服务器的搭建和挂载使用
查看>>
我的友情链接
查看>>
jQuery怎么判断table里是否有可见的tr
查看>>
系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
查看>>
fork()
查看>>
Java8 - 日期和时间实用技巧
查看>>
Java记录 -58- Iterator 迭代器
查看>>
RabbitMQ入门(5)--主题
查看>>
菜鸟如何使用GoEasy实现第一个web实时消息推送
查看>>
LNMMP架构的安装配置和功能的实现
查看>>
几个设置让你的邮箱不会爆满
查看>>
我的友情链接
查看>>
在linux6上安装RAC时多路径的权限设置
查看>>
[转载] 七龙珠第一部——第037话 忍者出现
查看>>