REST WCF 4.0 新特性簡介

來源:互聯網
上載者:User

  前面幾節介紹了REST WCF 3.5的一些基本特性以及使用方式,在WCF4.0的時代,也做了對REST的支援。相比3.5時代,4.0改進體現有如下幾點:

  1. 增加對路由的支援
  2. 對緩衝的支援。
  3. 協助(help)頁面的改進。
  4. 訊息錯誤處理
  5. 訊息格式的多樣性如(XML\JSON\ATOM\TEXT\BINARY)
  6. 簡化操作。

  本節講述的重點為如何使用路由註冊REST服務、緩衝以及help頁面
  1、使用路由註冊服務。
  WCF4.0中新增的路由服務可以協助直接註冊服務,而不再需要SVC的檔案。
  需要注意的是,使用路由註冊服務時必須啟動ASP.NET的相容模式。即設定aspNetCompatibilityEnabled=True,並且相應的提供服務介面的類。需要將AspNetCompatibilityRequirements 特性添加到服務類型且同時RequirementsMode 設定為“Allowed”或“Required”。否則服務無法使用。啟動ASP.NET的相容模式,可使用ASP.NET的一些特性。
  REST WCF即WCF的WEB編程模型中,我們使用的是WebServiceHost,它是ServiceHost(當您沒有使用 Internet 資訊服務 (IIS) 或 Windows 啟用服務 (WAS) 公開服務時,請使用 ServiceHost 類來配置和公開服務以供用戶端應用程式使用)的衍生類別。如果REST WCF沒有指定服務端點地址,WebServiceHost會在服務的基址中自動為 HTTP 和 HTTPS 基址建立一個預設終結點。如果使用者指明了服務的端點位址,則它不會建立。
WebServiceHostFactory在可動態建立WebServiceHost Web宿主執行個體以響應傳入訊息的託管宿主環境中提供 WebServiceHost 的執行個體的工廠。
而採用路由註冊服務時,使用的就是WebServiceHostFactory。如:

 

代碼如下:

private void RegisterRoutes(){WebServiceHostFactory webServiceHostFactory = new WebServiceHostFactory();RouteTable.Routes.Add(new ServiceRoute("Service",webServiceHostFactory, typeof(Services)));}

  示:"Service"為Services類中提供服務的別名。它指明了Web地址的相對URI。使用服務的時候。它是ServiceRoute構造時必須的。

2、緩衝
REST WCF中,同樣可以通過如同ASP.NET配置緩衝的方式來佈建服務介面的緩衝。如在web.config檔案中做如下配置:

<caching><outputCacheSettings><outputCacheProfiles><add name="RestCahe10" duration="10" varyByParam=""/></outputCacheProfiles></outputCacheSettings></caching>[WebGet(UriTemplate ="/")][AspNetCacheProfile("RestCahe10")]public DateTime GetTime(){return DateTime.Now ;}

  

注意:varyByParam在緩衝設定中是必須有的。
3、協助頁面
在REST 服務中,已經沒有了WSDL文檔可以供調用者使用。於是,REST中,通過協助頁告知調用者如何使用服務。在F3.5時代,REST WC
就支援協助頁,在4.0中,有了進一步的改進。
啟用協助頁有兩種方式。
1、通過在<endpointBehavior>節點的<behavior>設定。如下:

<behaviors><endpointBehaviors><behavior><webHttp helpEnabled="true"/></behavior></endpointBehaviors></behaviors>

  

2、通過新增的standardEndpoints節點進行配置。如下:

<standardEndpoints><webHttpEndpoint>--><!-- Configure the WCF REST service base address via the global.asax.cs file and the default endpoint via the attributes on the <standardEndpoint> element below--><!--<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/></webHttpEndpoint></standardEndpoints>

  協助頁面如下:

點擊相應的方法進去後,會詳細顯示,此方法所使用的HTTP動作,請求、響應等等資訊。如:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.