国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

WebService積累

2019-11-17 03:24:30
字體:
供稿:網(wǎng)友

WebService積累

1、缺點(diǎn),無法傳輸復(fù)雜對(duì)象:如無法序列化key/value結(jié)構(gòu)的類型參數(shù)以及相關(guān)一維集合接口(Hashtable等打上標(biāo)簽[Serializable]即可序列化,不過繼承的IDictionary并不可以序列化)。

2、可使用wcftestclient工具測(cè)試webservice。3、WebService可以傳遞out參數(shù)。out關(guān)鍵字會(huì)導(dǎo)致參數(shù)通過引用(傳遞地址)來傳遞。這與ref關(guān)鍵字類似,不同之處在于ref要求變量必須在傳遞之前進(jìn)行初始化。原本以為在rpc場(chǎng)景中接口存在out 關(guān)鍵字的參數(shù)根本是沒有作用的,rpc已跨進(jìn)程或跨服務(wù)器,而out僅是將參數(shù)以引用的方式傳遞調(diào)用方(客戶端)進(jìn)程中內(nèi)存地址。經(jīng)過實(shí)驗(yàn),webservice支持以引用的方式傳遞參數(shù),推測(cè)是服務(wù)端返回?cái)?shù)據(jù)(基礎(chǔ)數(shù)據(jù)為xml格式,需要返回給客戶的數(shù)據(jù)有專門的格式),再在客戶端生成的代理類進(jìn)行賦值。1、無返回值有一個(gè)參數(shù)帶out關(guān)鍵字,webservice是已返回值方式將值賦予參數(shù)。服務(wù)端: [WebMethod(Description ="測(cè)試out")]publicvoidTestOut(outstringmsg) { msg =@"遠(yuǎn)程調(diào)用已經(jīng)跨進(jìn)程或服務(wù)器了,你還想通過我返回信息? 你做夢(mèng)嗎? 我只是在同進(jìn)程中以指針地址傳遞,將消息寫到該地址,以便在同進(jìn)程的調(diào)用方能讀到,而你已經(jīng)跨進(jìn)程或服務(wù)器了,你還想找我!!!! 不過好像webservice會(huì)轉(zhuǎn)換為返回值返回";return; }客戶端: publicstringTestOut() {returnbase.Channel.TestOut(); }2、有返回值且多個(gè)參數(shù)都是帶有out關(guān)鍵字服務(wù)端: [WebMethod(Description ="測(cè)試out及ref")]publicstringTestOutAndRef(outstringmsg,outstringmsg1,refstringmsg2) { msg =@"遠(yuǎn)程調(diào)用已經(jīng)跨進(jìn)程或服務(wù)器了,你還想通過我返回信息? 你做夢(mèng)嗎? 我只是在同進(jìn)程中以指針地址傳遞,將消息寫到該地址,以便在同進(jìn)程的調(diào)用方能讀到,而你已經(jīng)跨進(jìn)程或服務(wù)器了,你還想找我!!!!"; msg1 =@"webservice 好像會(huì)轉(zhuǎn)換為返回值返回。"; msg2 ="我打醬油的";return"ok"; }客戶端: publicstringTestOutAndRef(outstringmsg,outstringmsg1,refstringmsg2) {returnbase.Channel.TestOutAndRef(outmsg,outmsg1,refmsg2); }MSDN說明:

進(jìn)行 XML Web 服務(wù)調(diào)用時(shí)發(fā)生的過程與進(jìn)行常規(guī)方法調(diào)用時(shí)發(fā)生的過程類似。主要的差別在于,不是調(diào)用位于客戶端應(yīng)用程序中的方法,而是通過指定的傳輸(如 HTTP)生成請(qǐng)求消息。由于 XML Web 服務(wù)方法可能位于另一臺(tái)計(jì)算機(jī)上,因此 XML Web 服務(wù)處理請(qǐng)求所需的信息必須通過網(wǎng)絡(luò)傳遞給承載 XML Web 服務(wù)的服務(wù)器。XML Web 服務(wù)處理此信息并通過網(wǎng)絡(luò)將結(jié)果發(fā)送回客戶端應(yīng)用程序。

下圖顯示客戶端和 XML Web 服務(wù)之間的通信過程。

XML Web 服務(wù)生存期

XML Web Service 生命期

下面描述調(diào)用 XML Web 服務(wù)時(shí)發(fā)生的事件序列:

  1. 客戶端創(chuàng)建 XML Web 服務(wù)代理類的一個(gè)新實(shí)例。該對(duì)象駐留在客戶端所在的同一臺(tái)計(jì)算機(jī)上。

  2. 客戶端調(diào)用代理類上的方法。

  3. 客戶端計(jì)算機(jī)上的基礎(chǔ)結(jié)構(gòu)將 XML Web 服務(wù)方法的參數(shù)序列化為 SOAP 消息,并通過網(wǎng)絡(luò)將其發(fā)送給 XML Web 服務(wù)。

  4. 基礎(chǔ)結(jié)構(gòu)接收 SOAP 消息并反序列化該 XML。它創(chuàng)建實(shí)現(xiàn) XML Web 服務(wù)的類的實(shí)例并調(diào)用 XML Web 服務(wù)方法,同時(shí)將反序列化的 XML 作為參數(shù)傳入。

  5. XML Web 服務(wù)方法執(zhí)行其代碼,最終會(huì)設(shè)置返回值和任何輸出參數(shù)(ref及out)。

  6. Web 服務(wù)器上的基礎(chǔ)結(jié)構(gòu)將返回值和輸出參數(shù)序列化為 SOAP 消息,并通過網(wǎng)絡(luò)將其發(fā)送回客戶端。

  7. 客戶端計(jì)算機(jī)上的 XML Web 服務(wù)基礎(chǔ)結(jié)構(gòu)接收該 SOAP 消息,將 XML 反序列化為返回值和任意輸出參數(shù),并將其傳遞給代理類的實(shí)例。

  8. 客戶端接收返回值和任何輸出參數(shù)。

生成 XML Web 服務(wù)

創(chuàng)建 XML Web 服務(wù)類似于創(chuàng)建任何提供對(duì)其應(yīng)用程序邏輯的編程訪問的組件。要?jiǎng)?chuàng)建一個(gè) XML Web 服務(wù),您需要一些功能來構(gòu)成這一要公開的服務(wù),需要一個(gè)服務(wù)描述來定義如何使用該服務(wù),并需要一個(gè)基礎(chǔ)結(jié)構(gòu)來支持請(qǐng)求的接收和處理以及響應(yīng)的發(fā)送。值得慶幸的是,已經(jīng)為您提供了所需基礎(chǔ)結(jié)構(gòu)的很大一部分。

生成 XML Web 服務(wù)客戶端

由于 XML Web 服務(wù)可以使用 URL、HTTP 和 XML 進(jìn)行訪問,這就意味著在任何平臺(tái)上以任何語言運(yùn)行的程序都可以訪問 XML Web 服務(wù)。由于 XML Web 服務(wù)的分散式性質(zhì),使客戶端和 XML Web 服務(wù)能夠作為自治單元運(yùn)行,因此,使用 XML Web 服務(wù)的方法數(shù)不勝數(shù)。例如,對(duì) XML Web 服務(wù)的調(diào)用可以包含在 Web 應(yīng)用程序、中間件組件甚至其他 XML Web 服務(wù)中。無論 XML Web 服務(wù)客戶端采用何種形式,調(diào)用 XML Web 服務(wù)所需的全部條件就是,按照 XML Web 服務(wù)已發(fā)布的服務(wù)描述發(fā)送格式正確的請(qǐng)求消息。根據(jù) XML Web 服務(wù)的性質(zhì),它可能會(huì)發(fā)送響應(yīng)消息作為回應(yīng)。然后,發(fā)出請(qǐng)求的一方必須能夠從該消息中提取必要的信息。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄂伦春自治旗| 九台市| 巴林左旗| 水富县| 砚山县| 盐亭县| 广灵县| 西乡县| 临桂县| 安福县| 渝北区| 运城市| 平和县| 福海县| 岱山县| 怀集县| 福安市| 涞水县| 贵港市| 太仓市| 韶关市| 久治县| 桦甸市| 漳州市| 全椒县| 海口市| 盈江县| 隆化县| 平阳县| 石台县| 本溪| 麻阳| 慈利县| 伊春市| 白沙| 栾城县| 田阳县| 班戈县| 甘泉县| 牟定县| 甘泉县|