日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

探討.Net整合其他平臺(2)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解析ASP.NET 2.0創(chuàng)建母版頁引來的麻煩
一、問題提出 由于總體排版和設計的需要,我們往往創(chuàng)建母版頁來實現(xiàn)整個網站的統(tǒng)一性,最近我由于統(tǒng)一性的需要,把原來整個項目單獨的頁面全部套用了母版頁。但是出現(xiàn)了一個錯誤在這里記錄一下,方便大家參考。 二、抽象模型 由于整個頁面內容過多,所以我把

為了精確地評估這個錯誤,代理調用被一個名為Proxy Trace的公用程序使用,以便代理生成SOAP包裝。這可以通過把下列代碼添加進ASP.Net頁面來實現(xiàn):

msNews.Proxy = new System.Net.WebProxy( http://localhost:8080);

在察看了由.Net代理生成的SOAP包裝之后,我有點奇怪為什么會返回這個錯誤,因為實際上一個相對的SOAP包裝被生成并被發(fā)送到Web服務。即使在嘗試了好幾個轉化成代理代碼之后這個錯誤依然持續(xù)。代碼段列表2顯示了從PHP Web服務返回的完整的SOAP錯誤包裝。

在使用VS.Net中創(chuàng)建的代理對象的好幾個把ASP.Net頁面與PHP Web服務連結的不成功的嘗試之后,我決定從頭開始創(chuàng)建SOAP包裝以便執(zhí)行更有效的程序調試。{起先,它看起來好像由.Net代理生成的模式域名空間可能是問題的關鍵,因為.Net使用2001模式規(guī)范而PHP服務使用的是1999版本的規(guī)范。

然而,我把自定義的SOAP包裝改為用1999版本代替2001版本,錯誤依然存在。在嘗試了好幾個其他的小的改變之后,我決定把SOAP包裝使用的域名空間前綴和正文元素從soap (由.Net代理生成)改為SOAP - ENV,因為我看見在SOAP錯誤信息中返回了SOAP - ENV前綴。(見代碼2)這表面上看上去微不足道的改變竟解決了問題!當處理任何請求的時候,PHP服務顯然需要SOAP - ENV前綴,而拒絕不包含SOAP - ENV前綴的要求。

創(chuàng)建一個自定義代理

既然已經了解了為什么Web服務返回一個SOAP錯誤,我們就可以創(chuàng)建一個自定義代理來生成網服務期待的SOAP包裝。雖然創(chuàng)建一個自定義SOAP包裝肯定比使用一個由VS.net或者WSDL.exe公用程序生成的SOAP包裝要花更多的時間,但是這樣做可以完全控制包裝的內容。為了開始創(chuàng)建自定義代理,我創(chuàng)建一個名為msnewsserviceproxy的包含兩個字段的新類:

以下為引用的內容:

public class MSNewsServiceProxy {
string _uri;

string _soapAction;

}

uri字段保存了Web服務的位置,而_soapAction字段保存了將要使用SOAP包裝發(fā)送的SOAPAction數據頭的名稱。在MSNewsServiceProxy類之內,添加CreateSoapEnvelope (),SendSoapEnvelope ()和FilterResult ()這三個方法。這些方法生成SOAP包裝請求,把它發(fā)送到Web服務,然后過濾返回的SOAP包裝。讓我們逐一的看看每個方法。注意代碼在SOAP包裝的根元素上添加一個SOAP - ENV域名空間前綴。Web服務顯然需要這個特定的前綴,而拒絕任何不包含這個前綴的信息。因為VS.net生成的代理發(fā)送一個soap域名空間前綴(而不是SOAP - ENV),所以它的消息被拒絕。Web服務不應該需要一個特定的域名空間前綴而為此拒絕不帶此前綴的消息,但是域名空間問題也是你必須注意要想使工作更好的完成,要執(zhí)行一些看上去不{0>可思議的事情。

在SOAP包裝被創(chuàng)建之后,SendSoapEnvelope ()方法(見代碼段4)使用了幾個System.Net和System.IO域名空間中的類來把這個包裝發(fā)送到Web服務中。代碼首先通過把_uri變量傳送到對象構造器來創(chuàng)建一個HttpWebRequest對象。其次,與這個請求相關聯(lián)的相應的Method,ContentType和Header都將被發(fā)送。

分享:解讀ASP.NET 2.0跨網頁提交的三種方法
當在一個ASP.NET Web頁面中進行操作時,在默認情況下向當前頁進行提交。這種行為在ASP.NET出現(xiàn)之前并沒有什么關系,但在ASP.NET中,當我們想向另外一個Web頁提交一個Web Form時該如何做呢?在ASP.NET1.0中這個問題變得很難解決,但在ASP.NET 2.0中為開發(fā)人員

來源:模板無憂//所屬分類:.Net教程/更新時間:2009-06-20
相關.Net教程