亚洲AV无码乱码在线观看不卡|最新大伊香蕉精品视频在线|亚洲不卡av一区二区|国产美女无遮挡免费

登錄論壇 | 注冊會員 設為首頁 | 收藏本站
當前位置 : 首頁>軟件學院>程序開發(fā)>ASP.NET>正文
 
用ASP.NET開發(fā)Web服務的五則技巧

http://www.yibo1263.com 2008-6-29 20:58:32  來源:本站  編輯:張賀兵
 
 一、禁用HTTP POST/GET協(xié)議

  除非另外指定,否則,.NET將試圖把Web服務綁定到三種協(xié)議:HTTP/POST、HTTP/GET和SOAP。之所以說“試圖”,是因為依賴于服務的參數(shù)和返回類型,HTTP/GET協(xié)議可能不可用。.NET生成的WSDL文件將自動包含綁定這三種協(xié)議的指令,客戶程序可以自由選擇使用哪種協(xié)議與服務通信。

  只要在Web.config文件中加入下列內(nèi)容,就可以方便地刪除對HTTP/POST和HTTP/GET協(xié)議的綁定:

  為什么要避免通過HTTP/POST和HTTP/GET協(xié)議引出Web服務呢?主要的兩個原因是安全和互操作性。HTTP/GET的安全性不如SOAP,而且由于HTTP/GET常見于Web鏈接,懷有惡意的人可能利用它實施欺騙,使別人在不知不覺中用自己的安全標識調用Web服務,卻還以為自己在點擊Web鏈接。

  就互操作性而言,SOAP是廣泛應用的Web服務通信標準,而HTTP/GET和HTTP/POST不是。因此,對于.NET生成的WSDL文檔中默認包含的HTTP/GET和HTTP/POST綁定,許多自動生成代理服務器的工具不會理解。因此,如果你的Web服務不是非綁定到HTTP/GET和HTTP/POST協(xié)議不可,最好取消這兩種綁定。

  二、用tcpTrace查看SOAP請求/應答消息

  對于開發(fā)Web服務應用的人來說,調試可能是件異乎尋常的難事,因為無論是.NET SDK還是VS.NET,都沒有提供工具來查看客戶端和服務器之間的SOAP消息。

  如果.NET和非.NET的客戶端、服務器端的交互過程出現(xiàn)了問題,要想找出問題的根源,擁有查看SOAP消息的能力就尤為重要,因為這類問題往往與SOAP消息的格式有關(例如,“消息中包含了SOAPAction 嗎?”)。

  tcpTrace(www.pocketsoap.com/tcptrace)是一個查看這類消息交換過程的優(yōu)秀工具,它通過設置一個客戶端和服務器端之間的隧道工作。啟動tcpTrace時,它會要求輸入目標URL和端口號,以及tcpTrace監(jiān)聽的本地端口號。這樣,你就可以通過設置代理stub的Url屬性,把stub指向這個本地端口(例如,localhost:8080)。tcpTrace能夠記錄所有的請求和應答HTTP消息。

  tcpTrace的一個局限是,它在消息流程中所處的位置決定了它不能用來查看通過SSL發(fā)送的消息。如果你要查看通過SSL發(fā)送的SOAP消息,只能編寫一個定制的ISAPI過濾器。

  三、簡化接口設計

  在眾多有關n-層應用設計的論述中,簡化接口設計這一設計要訣可以說是隨處可見。但是,對于Web服務這樣的分布式計算環(huán)境,簡化接口設計的重要性更加突出。

  在設計分布式應用時,出于性能和可伸縮性的考慮,應當保證客戶端和服務器端之間的調用盡可能地少。減少網(wǎng)絡調用不僅有利于減少通信開銷(如果只用一個SOAP消息可以達到目標,就絕對不要發(fā)三個消息),降低網(wǎng)絡流量,而且提高了應用的性能。顯然,這一切都是開發(fā)者夢寐以求的目標。那么簡化的接口到底有何特征呢?

  首先來看一個復雜接口的例子:

  namespace ChattyService {

   public class ChattyService : WebService {

   private string username;

   private string password;

    public string Username {

   [WebMethod]

   set {

   username = Username;

   } }

  

   public string Password {

   [WebMethod]

   set {

   password = Password;

   } }

  

   [WebMethod]

   public bool Logon() {

   // 驗證身份

   return true;

   }

   }

  }

  在這個例子中,username和password是兩個屬性,調用logon()方法之前首先必須設置這兩個屬性。有一個問題光看這段代碼不太容易注意到,這就是username和password都作為Web方法引出。這就是說,每次對屬性的get/set操作都會導致一個對服務的調用。

  按照簡化接口設計的要求,改進后的代碼如下:   

  namespace ChattyService {

   public class ChattyService : WebService {

本新聞共2頁,當前在第1頁  1  2  

 
收藏】【打印】【進入論壇
  相關文章:

·淺析五大ASP.NET數(shù)據(jù)控件
·Discuz!NT 3.1 為ASP.net社區(qū)提速 
·淺析五大ASP.NET數(shù)據(jù)控件
·ASP.NET全局異常處理的方法
·asp.net實現(xiàn)驗證碼
·ASP.NET中在線用戶統(tǒng)計
·用ASP.NET加密口令
·在ASP.NET中使用Microsoft Word文檔
·Asp.net+Xml開發(fā)網(wǎng)絡硬盤 
·用ASP.NET構建簡單的Web Form 
·ASP.Net中自定義Http處理及應用之HttpModul

 
 
 
 
最新文章

中關村艷照門女主角詳記錄高清組圖 
大連護士門大尺度艷照高清組圖
iPhone女孩微博爆紅 最寶貴東西換iPhon
反恐精英之父內(nèi)維爾:改變電腦游戲銷售
團購網(wǎng)站黎明之前:中國市場慘烈廝殺不
團購鼻祖Groupon中國揭秘:快與慢的商業(yè)
Spil Games發(fā)布新的品牌形象
1800配置一臺主機 不要顯示器
聯(lián)想V360筆記本模特寫真
愛國者第四代移動硬盤將面市、低電壓保

 
推薦文章
1
2
3
4
5
6
7
8
9
10
iPhone女孩微博爆紅 最寶貴東西換
大連護士門大尺度艷照高清組圖
中關村艷照門女主角詳記錄高清組
蘋果員工中毒門
宮如敏不雅照瘋傳 看張馨予韓一菲
深耕市場 永續(xù)經(jīng)營——專訪百腦匯
優(yōu)派專業(yè)電子書 讓您回家旅途多姿
揭曉百萬大獎三星bada魅力綻放中
大明龍權“江湖英雄會”全國PK大
永恒之塔校園達人挑戰(zhàn)賽完美落幕
八卦圖解 More>>
iPhone女孩微博爆紅 最寶貴東西換 大連護士門大尺度艷照高清組圖
中關村艷照門女主角詳記錄高清組 宮如敏不雅照瘋傳 看張馨予韓一菲