成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET 4.0中WCF服務(wù)配置的簡化與改進(jìn)

原創(chuàng)
開發(fā) 后端 開發(fā)工具
.NET 4.0中增添了許多新特性,其中之一就是大大的簡化了WCF服務(wù)配置。簡化包括了三個(gè)主要特性:無須為每個(gè)服務(wù)進(jìn)行單獨(dú)配置,允許綁定和行為定義默認(rèn)值,以及標(biāo)準(zhǔn)端點(diǎn)的加入。

【51CTO精選譯文】目前WCF用戶最頭痛的一件事就是需要為WCF服務(wù)處理眾多的配置文件,WCF配置模式本身非常復(fù)雜,為用戶操作增加了不少難度。在.Net 4中我們將為WCF用戶干一件實(shí)事,簡化WCF服務(wù)配置,為此我們將會(huì)在.Net 4中發(fā)布一系列新的WCF特性。

***個(gè)特性是不再需要為每個(gè)服務(wù)進(jìn)行單獨(dú)的配置,如果你沒有為你的服務(wù)定義過任何< service>服務(wù)元素,你的服務(wù)也沒有通過編程定義任何端點(diǎn),那么將會(huì)自動(dòng)向你的服務(wù)中添加一套端點(diǎn),每個(gè)服務(wù)一個(gè),每個(gè)服務(wù)執(zhí)行的契約一個(gè),這些端點(diǎn)的地址與基地址對應(yīng),綁定將由基地址模式和服務(wù)執(zhí)行的契約決定。

下面的配置就是傳統(tǒng)的WCF開發(fā)人員要編輯的WCF服務(wù)配置文件片段,在這個(gè)例子中,我們看到有一個(gè)基地址,執(zhí)行了一個(gè)契約:

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3.   < system.serviceModel> 
  4.     < services> 
  5.       < service name="Service1"> 
  6.         < host> 
  7.           < baseAddresses> 
  8.             < add baseAddress="http://localhost:8731/Service1/" /> 
  9.           < /baseAddresses> 
  10.         < /host> 
  11.         < endpoint address="" 
  12.                   binding="basicHttpBinding" 
  13.                   contract="Library1.IService1" /> 
  14.       < /service> 
  15.     < /services> 
  16.   < /system.serviceModel> 
  17. < /configuration> 

但在.Net 4中,這個(gè)配置就被簡化成:

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3. < /configuration> 

在這種情況下,即使沒有配置文件,你也可以部署你的服務(wù)。在基地址模式和綁定類型之間也可以自定義映射,如果你想增強(qiáng)服務(wù)的安全性,可以為HTTP地址使用wsHttpBinding作為默認(rèn)綁定類型,如:

  1. < protocolMapping> 
  2.   < add scheme="http" binding="wsHttpBinding" /> 
  3. < /protocolMapping> 

第二個(gè)特性是允許用戶為WCF綁定和行為定義默認(rèn)值,那些沒有名字的綁定、服務(wù)行為和端點(diǎn)行為可以應(yīng)用到你沒有進(jìn)行明確配置的服務(wù)中,如果在VS2008/.NET 3.5中查看某個(gè)WCF服務(wù)庫項(xiàng)目的配置,我們會(huì)看到:

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3.   < system.serviceModel> 
  4.     < services> 
  5.       < service name="Service1" 
  6.                behaviorConfiguration="Service1Behavior"> 
  7.         < host> 
  8.           < baseAddresses> 
  9.             < add baseAddress="http://localhost:8731/Service1/" /> 
  10.           < /baseAddresses> 
  11.         < /host> 
  12.         < endpoint address="" 
  13.                   binding="wsHttpBinding" 
  14.                   contract="Library1.IService1" /> 
  15.       < /service> 
  16.     < /services> 
  17.     < behaviors> 
  18.       < serviceBehaviors> 
  19.         < behavior name="Service1Behavior"> 
  20.           < serviceMetadata httpGetEnabled="True" /> 
  21.           < serviceDebug includeExceptionDetailInFaults="False" /> 
  22.         < /behavior> 
  23.       < /serviceBehaviors> 
  24.     < /behaviors> 
  25.   < /system.serviceModel> 
  26. < /configuration> 

在.Net 4中新的WCF服務(wù)配置允許我們大大簡化服務(wù)配置,如:

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3.   < system.serviceModel> 
  4.     < behaviors> 
  5.       < serviceBehaviors> 
  6.         < behavior> 
  7.           < serviceMetadata httpGetEnabled="True" /> 
  8.           < serviceDebug includeExceptionDetailInFaults="False" /> 
  9.         < /behavior> 
  10.       < /serviceBehaviors> 
  11.     < /behaviors> 
  12.   < /system.serviceModel> 
  13. < /configuration> 

實(shí)際上,這恰好顯示了VS2010/.NET 4中新的服務(wù)配置模板的模樣。

定義默認(rèn)的綁定和行為在.Net 4 WCF服務(wù)配置繼承中非常有用,那些在配置層次***定義的綁定和行為將會(huì)自動(dòng)添加到你的服務(wù)中,這就是傳說中的配置繼承。下圖顯示了如何依賴于機(jī)器和應(yīng)用程序級(jí)定義的配置元素來簡化你的服務(wù)配置。

.Net 4.0中服務(wù)配置的改進(jìn) - 配置繼承 
圖 1 配置繼承

在這個(gè)例子中,默認(rèn)的basicHttpBinding和serviceMetadataBehavior都定義在物理層,在下一級(jí)定義了默認(rèn)的serviceDebugBehavior,它將會(huì)添加服務(wù)上,只需默認(rèn)端點(diǎn)使用了機(jī)器層定義的綁定即可。***要說明的是,.Net 4 Beta 2中這些默認(rèn)服務(wù)行為將會(huì)被合并,并添加到那些沒有明確配置的服務(wù)上,敬請期待!

***,.Net 4中第三個(gè)WCF配置增強(qiáng)是標(biāo)準(zhǔn)端點(diǎn),它允許你定義可重復(fù)使用的預(yù)配置端點(diǎn),這些端點(diǎn)的主要特性是有一到多個(gè)地址、綁定和有固定值的契約屬性,這對于定義系統(tǒng)端點(diǎn)特別有用,系統(tǒng)端點(diǎn)提供它們自己的契約實(shí)施,例如不在你的服務(wù)中定義,作為MEX端點(diǎn)的實(shí)例,WCF開箱即可提供這個(gè)實(shí)現(xiàn)。標(biāo)準(zhǔn)端點(diǎn)的另一個(gè)有趣的特性是可以使用新的屬性擴(kuò)展服務(wù)端點(diǎn),也可以使用類似的方式自定義綁定。標(biāo)準(zhǔn)端點(diǎn)也允許你為你的服務(wù)端點(diǎn)定義自定義屬性。

為了定義標(biāo)準(zhǔn)端點(diǎn),需要在你的端點(diǎn)中使用下面的屬性。***個(gè)屬性是kind,它標(biāo)識(shí)了標(biāo)準(zhǔn)端點(diǎn)的類型,必須注冊到< endpointExtensions>小節(jié)中,第二個(gè)屬性是endpointConfiguration,它將去匹配< standardEndpoints>小節(jié)中標(biāo)準(zhǔn)端點(diǎn)的配置元素名,用于為端點(diǎn)定義新的屬性,***一個(gè)屬性是isSystemEndpoint,它標(biāo)記端點(diǎn)確定它是否有一個(gè)固定的契約。

下面的配置代碼片段定義了一個(gè)udpDiscoveryEndpoint,它是一個(gè)不明確的契約,為端點(diǎn)定義了額外的屬性:

  1. < ?xml version="1.0" encoding="utf-8" ?> 
  2. < configuration> 
  3.   < system.serviceModel> 
  4.     < services> 
  5.       < service name="Service1"> 
  6.         < endpoint address="" 
  7.                   binding="basicHttpBinding" 
  8.                   contract="Library1.IService1" /> 
  9.         < endpoint kind="udpDiscoveryEndpoint" 
  10.                   endpointConfiguration="udpConfig" /> 
  11.       < /service> 
  12.     < /services> 
  13.     < standardEndpoints> 
  14.       < udpDiscoveryEndpoint> 
  15.         < standardEndpoint 
  16.                   name="udpConfig" 
  17.                   multicastAddress="soap.udp://239.255.255.250:3703" 
  18.                   ... /> 
  19.       < /udpDiscoveryEndpoint> 
  20.     < /standardEndpoints> 
  21.   < /system.serviceModel> 
  22. < /configuration>   
  23. < endpointExtensions>  

小節(jié)將會(huì)在machine.config中具體指定:

  1. < ?xml version="1.0" encoding="utf-8" ?>   
  2. < configuration>   
  3.   < system.serviceModel>   
  4.     < extensions>   
  5.       < endpointExtensions>   
  6.         < add name="udpDiscoveryEndpoint" type="..." />   
  7.       < /endpointExtensions>   
  8.     < /extensions>   
  9.   < /system.serviceModel>   
  10. < /configuration>  

接下來會(huì)怎樣?

這些特性將幫助你維護(hù)一個(gè)清爽的WCF服務(wù)配置。不過還沒結(jié)束!有時(shí)你可能想要為你的服務(wù)定義不同的配置,例如一個(gè)用于調(diào)試,一個(gè)用于部署,在這種情況下,你仍然要維護(hù)web.config文件。我們目前已經(jīng)可以在定義的配置文件上工作,它將擔(dān)任不同配置元素的元包,通過服務(wù)使用這個(gè)配置文件將它們導(dǎo)入進(jìn)來。

原文:Service Configuration Improvements in .NET 4

作者:Amadeo Casas Cuadrado

【編輯推薦】

  1. 探討WCF安全中的服務(wù)元數(shù)據(jù)保護(hù)
  2. 使用ASP.NET AJAX調(diào)用WCF服務(wù)項(xiàng)模板
  3. 詳解自定義托管宿主WCF解決方案開發(fā)配置過程
  4. 詳解WCF可擴(kuò)展框架中的行為擴(kuò)展
  5. WCF開發(fā)基礎(chǔ)
責(zé)任編輯:yangsai 來源: 51CTO.com
相關(guān)推薦

2009-07-30 12:02:14

ASP.NET中WCF

2009-07-27 18:00:14

WCF服務(wù)與ASMX服ASP.NET

2009-09-04 16:28:05

ASP.NET 4.0

2009-07-20 17:39:36

WCF服務(wù)ASP.NET AJA

2010-07-19 09:01:54

.NET 4.0緩存

2009-08-17 09:30:28

.NET 4.0

2009-07-27 17:54:39

WCF服務(wù)ASP.NET

2009-07-21 09:53:55

ASP.NET AJAWCF服務(wù)

2009-07-27 17:51:58

WCF服務(wù)ASP.NET

2020-12-10 08:00:00

開發(fā).NET工具

2009-12-21 11:10:53

WCF工具

2009-07-27 17:38:30

WCF服務(wù)ASP.NET 3.5

2009-07-27 17:46:42

WCF服務(wù)ASP.NET應(yīng)用程序

2009-12-08 16:59:52

WCF服務(wù)

2009-12-15 18:00:54

.NET 4.0

2009-12-04 09:14:05

.NET 4.0

2010-01-08 11:04:06

ASP.NET 4SEO

2009-11-24 15:49:48

.NET 4.0 Be

2021-09-08 05:00:38

.NET

2014-06-09 15:29:13

OData v4.0
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久久久久久久久久 | 免费大黄视频 | 久久久视频在线 | 在线观看国产www | 国产精品久久福利 | 中文字幕亚洲一区 | 2019天天干天天操 | 成人精品系列 | 情侣酒店偷拍一区二区在线播放 | 一区二区影视 | 韩日视频在线观看 | 国产精品久久二区 | 美女在线视频一区二区三区 | 午夜欧美a级理论片915影院 | 精品亚洲视频在线 | 国产精品高潮呻吟久久av野狼 | 波多野结衣电影一区 | 91看片免费 | 日韩在线观看中文字幕 | 成人国产精品久久 | 美女亚洲一区 | 一级片免费网站 | 中文字幕 在线观看 | 成人免费看片 | 久久精品国产亚洲 | 全免费a级毛片免费看视频免费下 | www.久久.com | 日韩欧美精品在线 | 国产精品视频区 | 亚洲一区二区久久 | 亚洲乱码一区二区 | 男人阁久久 | 日本精品视频一区二区三区四区 | 成人精品鲁一区一区二区 | 福利视频一区二区三区 | 免费看啪啪网站 | 精品国产视频 | 久热精品在线 | 久久国产综合 | 欧美成人自拍视频 | 国产精品视频在线播放 |