ASP.NET WebService中使用ASP.NET_SessionId的問題說明
更新時間:2011年09月16日 22:20:08 作者:
proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調用時,都會將ASP.NET_SessionId傳遞到服務器端。
今天在幫助同事解決對WebService進行 Web References 調用問題:當調用webservice第一個方法Method1發(fā)現(xiàn)服務端Set-Cookie: ASP.NET_SessionId=*****保存了ASP.NET的會話狀態(tài)。接著當我再調用webservice的第二個方法Method2時發(fā)現(xiàn)無法正確返回服務器端處理結果
也就是說webservices進行http post 的時無法正常響應服務端。感覺問題就出在cookie上(Method1調用時服務端進行了Set-Cookie),但是就是始終解決不了問題。接著測試webservices瀏覽器端訪問,一切都是正常的。只怪自己對WebService了解甚少,導致明明知道問題所在,就是無法解決問題。。
技術問題往往都是這樣,當你越想解決它,它就越難快速的被你搞定。于是乎下班回家后沖涼、吃飽后繼續(xù)嘗試解決問題。我突然想到了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;
代碼執(zhí)行完以上信息在執(zhí)行Method1,因為這玩意才開始 Set-Cookie...
接著在執(zhí)行Method2一切都OK了。
這說明了 proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調用時,都會將ASP.NET_SessionId傳遞到服務器端。
注:該WEBSERVICES 是客戶提供的,我們不能隨便修改它的代碼。
我想應該也有不少人碰見了類似的問題。本文權當方便后來人吧。
也就是說webservices進行http post 的時無法正常響應服務端。感覺問題就出在cookie上(Method1調用時服務端進行了Set-Cookie),但是就是始終解決不了問題。接著測試webservices瀏覽器端訪問,一切都是正常的。只怪自己對WebService了解甚少,導致明明知道問題所在,就是無法解決問題。。
技術問題往往都是這樣,當你越想解決它,它就越難快速的被你搞定。于是乎下班回家后沖涼、吃飽后繼續(xù)嘗試解決問題。我突然想到了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;
代碼執(zhí)行完以上信息在執(zhí)行Method1,因為這玩意才開始 Set-Cookie...
接著在執(zhí)行Method2一切都OK了。
這說明了 proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調用時,都會將ASP.NET_SessionId傳遞到服務器端。
注:該WEBSERVICES 是客戶提供的,我們不能隨便修改它的代碼。
我想應該也有不少人碰見了類似的問題。本文權當方便后來人吧。
您可能感興趣的文章:
- Jquery + Ajax調用webService實例代碼(asp.net)
- asp.net下使用jquery 的ajax+WebService+json 實現(xiàn)無刷新取后臺值的實現(xiàn)代碼
- PHP中調用ASP.NET的WebService的代碼
- jQuery Ajax方法調用 Asp.Net WebService 的詳細實例代碼
- 使用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認證的WebService應用實例
- ASP.NET如何定時調用WebService服務
- ASP.NET調用WebService服務的方法詳解
- ASP.NET中Webservice安全 實現(xiàn)訪問權限控制
- ASP.NET中基于soaphead的webservice安全機制
相關文章
解決asp.net mvc UpdateModel更新對象后出現(xiàn)null問題的方法
這篇文章主要介紹了解決asp.net mvc UpdateModel 更新對象后出現(xiàn)null問題的方法,需要的朋友可以參考下2015-11-11ASP.NET實現(xiàn)圖片以二進制的形式存入數(shù)據(jù)庫
這篇文章主要介紹了ASP.NET實現(xiàn)圖片以二進制的形式存入數(shù)據(jù)庫,有一定的學習借鑒價值,需要的朋友可以參考下2014-08-08ASP.NET Core 奇技淫巧之接口代理轉發(fā)的實現(xiàn)
這篇文章主要介紹了ASP.NET Core 奇技淫巧之接口代理轉發(fā)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08使用HttpClient消費ASP.NET Web API服務案例
這篇文章介紹了使用HttpClient消費ASP.NET Web API服務的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10靜態(tài)gb2312編碼在項目傳值出現(xiàn)中文亂碼現(xiàn)象
參考的美工靜態(tài)頁面是gb2312格式的,當此編碼拿到項目中后,utf-8編碼的系統(tǒng),加載頁面時,會出現(xiàn)樣式問題,比如不能正常居中等2013-06-06Asp.Net 5分鐘實現(xiàn)網(wǎng)頁實時監(jiān)控
在項目開發(fā)中經(jīng)常會用到監(jiān)控功能,下面通過本篇文章給大家介紹Asp.Net 5分鐘實現(xiàn)網(wǎng)頁實時監(jiān)控,需要的朋友可以參考下2017-12-12服務器安全狗導致ASP.NET網(wǎng)站運行出錯的一個案例
這篇文章主要介紹了服務器安全狗導致ASP.NET網(wǎng)站運行出錯的一個案例,最后一并給出了解決方法,需要的朋友可以參考下2014-08-08