ASP.NET WebService中使用ASP.NET_SessionId的問題說明
更新時間:2011年09月16日 22:20:08 作者:
proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調(diào)用時,都會將ASP.NET_SessionId傳遞到服務(wù)器端。
今天在幫助同事解決對WebService進(jìn)行 Web References 調(diào)用問題:當(dāng)調(diào)用webservice第一個方法Method1發(fā)現(xiàn)服務(wù)端Set-Cookie: ASP.NET_SessionId=*****保存了ASP.NET的會話狀態(tài)。接著當(dāng)我再調(diào)用webservice的第二個方法Method2時發(fā)現(xiàn)無法正確返回服務(wù)器端處理結(jié)果
也就是說webservices進(jìn)行http post 的時無法正常響應(yīng)服務(wù)端。感覺問題就出在cookie上(Method1調(diào)用時服務(wù)端進(jìn)行了Set-Cookie),但是就是始終解決不了問題。接著測試webservices瀏覽器端訪問,一切都是正常的。只怪自己對WebService了解甚少,導(dǎo)致明明知道問題所在,就是無法解決問題。。
技術(shù)問題往往都是這樣,當(dāng)你越想解決它,它就越難快速的被你搞定。于是乎下班回家后沖涼、吃飽后繼續(xù)嘗試解決問題。我突然想到了long long ago 俺寫過一篇文章,就是http抓包的文章,文章地址在這里:http://www.cnblogs.com/ryanding/archive/2011/01/17/1936392.html。主要是通過HttpWebRequest、HttpWebResponse 這兩大神器來解決問題。后來想想這樣做肯定可以搞定這個問題。但是還是稍微過于繁瑣了。記得HttpWebRequest 有一個CookieContainer對象,可以解決cookie問題。于是乎就拼命的在WebServcie的Web References實例化對象上找相關(guān)屬性。最終完美的被我解決了,代碼如下:
ConsoleApplication1.WebReference.YourWebServiceName proxy= new ConsoleApplication1.WebReference.YourWebServiceName();
System.Net.CookieContainer Cookies = new System.Net.CookieContainer();
proxy.CookieContainer = Cookies;
代碼執(zhí)行完以上信息在執(zhí)行Method1,因為這玩意才開始 Set-Cookie...
接著在執(zhí)行Method2一切都OK了。
這說明了 proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調(diào)用時,都會將ASP.NET_SessionId傳遞到服務(wù)器端。
注:該WEBSERVICES 是客戶提供的,我們不能隨便修改它的代碼。
我想應(yīng)該也有不少人碰見了類似的問題。本文權(quán)當(dāng)方便后來人吧。
也就是說webservices進(jìn)行http post 的時無法正常響應(yīng)服務(wù)端。感覺問題就出在cookie上(Method1調(diào)用時服務(wù)端進(jìn)行了Set-Cookie),但是就是始終解決不了問題。接著測試webservices瀏覽器端訪問,一切都是正常的。只怪自己對WebService了解甚少,導(dǎo)致明明知道問題所在,就是無法解決問題。。
技術(shù)問題往往都是這樣,當(dāng)你越想解決它,它就越難快速的被你搞定。于是乎下班回家后沖涼、吃飽后繼續(xù)嘗試解決問題。我突然想到了long long ago 俺寫過一篇文章,就是http抓包的文章,文章地址在這里:http://www.cnblogs.com/ryanding/archive/2011/01/17/1936392.html。主要是通過HttpWebRequest、HttpWebResponse 這兩大神器來解決問題。后來想想這樣做肯定可以搞定這個問題。但是還是稍微過于繁瑣了。記得HttpWebRequest 有一個CookieContainer對象,可以解決cookie問題。于是乎就拼命的在WebServcie的Web References實例化對象上找相關(guān)屬性。最終完美的被我解決了,代碼如下:
復(fù)制代碼 代碼如下:
ConsoleApplication1.WebReference.YourWebServiceName proxy= new ConsoleApplication1.WebReference.YourWebServiceName();
System.Net.CookieContainer Cookies = new System.Net.CookieContainer();
proxy.CookieContainer = Cookies;
代碼執(zhí)行完以上信息在執(zhí)行Method1,因為這玩意才開始 Set-Cookie...
接著在執(zhí)行Method2一切都OK了。
這說明了 proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調(diào)用時,都會將ASP.NET_SessionId傳遞到服務(wù)器端。
注:該WEBSERVICES 是客戶提供的,我們不能隨便修改它的代碼。
我想應(yīng)該也有不少人碰見了類似的問題。本文權(quán)當(dāng)方便后來人吧。
您可能感興趣的文章:
- Jquery + Ajax調(diào)用webService實例代碼(asp.net)
- asp.net下使用jquery 的ajax+WebService+json 實現(xiàn)無刷新取后臺值的實現(xiàn)代碼
- PHP中調(diào)用ASP.NET的WebService的代碼
- jQuery Ajax方法調(diào)用 Asp.Net WebService 的詳細(xì)實例代碼
- 使用ASP.NET一般處理程序或WebService返回JSON的實現(xiàn)代碼
- asp.net(c#)動態(tài)修改webservice的地址和端口(動態(tài)修改配置文件)
- asp.net類庫中添加WebService引用出現(xiàn)問題解決方法
- asp.net webservice返回json的方法
- ASP.NET實現(xiàn)基于Forms認(rèn)證的WebService應(yīng)用實例
- ASP.NET如何定時調(diào)用WebService服務(wù)
- ASP.NET調(diào)用WebService服務(wù)的方法詳解
- ASP.NET中Webservice安全 實現(xiàn)訪問權(quán)限控制
- ASP.NET中基于soaphead的webservice安全機制
相關(guān)文章
JQuery實現(xiàn)Repeater無刷新批量刪除(附后臺asp.net源碼)
JQuery實現(xiàn)Repeater無刷新批量刪除(附后臺asp.net源碼) ,學(xué)習(xí)jquery的朋友可以參考下。2011-09-09
Asp.net使用SignalR實現(xiàn)聊天室的功能
這篇文章主要介紹了Asp.net使用SignalR實現(xiàn)聊天室的功能的相關(guān)資料,需要的朋友可以參考下2016-04-04
.Net Core3.0 配置Configuration的實現(xiàn)
這篇文章主要介紹了.Net Core3.0 配置Configuration的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
asp.net小孔子cms中的數(shù)據(jù)添加修改
最近都在看小孔子cms的代碼,其添加與修改數(shù)據(jù)十分方便,做下筆記,代碼主要提取自小孔子cms,去掉了不用的函數(shù)并把相關(guān)代碼寫到一個文件中2008-08-08
IIS7偽靜態(tài)web.config配置的方法和規(guī)則
本文主要介紹IIS7上配置偽靜態(tài)的超簡單的新方法,安裝URLRewrite插件,配置web.config即可。2016-04-04
實例解析Java中的synchronized關(guān)鍵字與線程安全問題
首先要清楚的是synchronized鎖住的不是代碼而是對象,因而在編寫相關(guān)的代碼塊時要注意線程同步安全問題,下面就來以實例解析Java中的synchronized關(guān)鍵字與線程安全問題2016-06-06

