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

WCF配置文件詳細解析

開發 開發工具
WCF配置文件總共由兩個部分構成,其中包括服務端配置以及客戶端配置。我們在這里將會針對這兩個部分進行一個詳細介紹。

WCF開發工具是微軟公司開發的一款面向服務的應用提供的分布式通信編程框架,在實際應用中起到了非常重要的作用。今天我們將會在這篇文章中為大家詳細介紹有關WCF配置文件的相關概念。#t#

當今的軟件系統開發,如果沒有配置文件幾乎是不可想象的事。沒有配置文件,軟件如何按照用戶的要求對功能進行定制?沒有配置文件,在對軟件進行配置安裝的時候如何根據具體的硬軟件環境進行修改?最重要的是沒有配置文件,該如何應對軟件系統的可擴展要求?不知不覺地,配置文件的編寫與管理竟然成了軟件開發的重中之重。

WCF作為分布式開發的基礎框架,在定義服務以及定義消費服務的客戶端時,都使用了配置文件的方法。雖然WCF也提供硬編程的方式,通過在代碼中直接設置相關對象的屬性來完成服務端與客戶端的配置,然而這種方式并不利于后期的更改。無疑,配置文件為WCF帶來了軟件開發的靈活性,它的使用也是WCF開發過程中最頻繁的。

WCF配置文件共分為兩部分:服務端配置與客戶端配置。兩者由于功能的不同,在配置文件的使用上也略有不同。

1.WCF配置文件的服務端配置

服務端的配置文件主要包括endpoint、binding、behavior的配置。一個標準的服務端配置文件所包含的主要xml配置節如下所示:

  1. < system.ServiceModel> 
  2. < services> 
  3. < service> 
  4. < endpoint/> 
  5. < /service> 
  6. < /services> 
  7. < bindings> 
  8. < !—定義一個或多個系統提供的binding元素,例如< basicHttpBinding> -->   
  9. < !—也可以是自定義的binding元素,如< customBinding>. --> 
  10. < binding> 
  11. < !—例如< BasicHttpBinding>元素. --> 
  12. < /binding> 
  13. < /bindings> 
  14. < behaviors> 
  15. < !—一個或多個系統提供的behavior元素. --> 
  16. < behavior> 
  17. < !—例如< throttling>元素. --> 
  18. < /behavior> 
  19. < /behaviors> 
  20. < /system.ServiceModel> 

1.1 < services>配置節

在< services>配置節中可以定義多個服務,每一個服務都被放到< service>配置節中,WCF的宿主程序可以通過WCF配置文件找到這些定義的服務并發布這些服務。

< service>配置節包含name和behaviorConfiguration屬性。其中,name配置了實現Service Contract的類型名。類型名必須是完整地包含了命名空間和類型名。而behaviorConfiguration的配置值則與其后的< behaviors>配置節的內容有關。< endpoint>是< service>配置節的主體,其中,< endpoint>配置節包含了endpoint的三個組成部分:Address、Binding和Contract。由于具體的binding配置是在< bindings>配置節中完成,因而,在< endpoint>中配置了bindingConfiguration屬性,指向具體的binding配置。如下所示:

  1. < services> 
  2. < service name="BruceZhang.MyService"
     behaviorConfiguration="MyBehavior"> 
  3. < endpoint address="" 
  4. binding="netTcpBinding" 
  5. bindingConfiguration="DuplexBinding" 
  6. contract="BruceZhang.IHello" /> 
  7. < /service> 
  8. < /services> 

 

我們也可以定義多個endpoint,例如:

  1. < services> 
  2. < service   
  3. name="Microsoft.ServiceModel.Samples.CalculatorService" 
  4. behaviorConfiguration="CalculatorServiceBehavior"> 
  5. < endpoint address="" 
  6. binding="wsHttpBinding" 
  7. contract="Microsoft.ServiceModel.Samples.ICalculator" /> 
  8. < endpoint address="mex" 
  9. binding="mexHttpBinding" 
  10. contract=" Microsoft.ServiceModel.Samples.IMetadataExchange" /> 
  11. < /service> 
  12. < /services> 

 

如果address值為空,那么endpoint的地址就是默認的基地址(Base Address)。例如ICalculator服務的地址就是http://localhost/servicemodelsamples/service.svc,而IMetadataExchange服務的地址則為http://localhost/servicemodelsamples/service.svc/mex。這里所謂的基地址可以在< service>中通過配置< host>來定義:

  1. < service   
  2. name="Microsoft.ServiceModel.Samples.CalculatorService" 
  3. behaviorConfiguration="CalculatorServiceBehavior"> 
  4. < host> 
  5. < baseAddresses> 
  6. < add baseAddress=  
  7. "http://localhost/ServiceModelSamples/service.svc"/> 
  8. < /baseAddresses> 
  9. < /host> 
  10. < endpoint … /> 
  11. < /service> 

 

1.2 < behaviors>配置節

當我們在定義一個實現了Service Contract的類時, binding和address信息是客戶端必須知道的,否則無法調用該服務。然而,如果需要指定服務在執行方面的相關特性時,就必須定義服務的behavior。在WCF中,定義behavior就可以設置服務的運行時屬性,甚至于通過自定義behavior插入一些自定義類型。例如通過指定ServiceMetadataBehavior,可以使WCF服務對外公布Metadata。配置如下:

  1. < behaviors> 
  2. < serviceBehaviors> 
  3. < behavior name="metadataSupport"> 
  4. < serviceMetadata httpGetEnabled="true" httpGetUrl=""/> 
  5. < /behavior> 
  6. < serviceBehaviors> 
  7. < behaviors> 

 

在WCF中,behavior被定義為Attribute,其中,System.ServiceModel.ServiceBehaviorAttribute和System.ServiceModel.OperationBehaviorAttribute是最常用的behavior。雖然,behavior作為Attribute可以通過編程的方式直接施加到服務上,但出于靈活性的考慮,將behavior定義到WCF配置文件中才是***的設計方式。

利用ServiceBehavior與OperationBehavior可以控制服務的如下屬性:

  1. 1、 對象實例的生命周期;  
  2. 2、 并發與異步處理;  
  3. 3、 配置行為;  
  4. 4、 事務行為;  
  5. 5、 序列化行為;  
  6. 6、 元數據轉換;  
  7. 7、 會話的生命周期;  
  8. 8、 地址過濾以及消息頭的處理;  
  9. 9、 模擬(Impersonation); 

 

例如,通過ServiceBehavior設置對象實例的生命周期:

  1. < behaviors> 
  2. < serviceBehaviors> 
  3. < behavior name="metadataSupport"> 
  4. < instanceContextMode httpGetEnabled="true" httpGetUrl=""/> 
  5. < /behavior> 
  6. < serviceBehaviors> 
  7. < behaviors> 

以上就是對WCF配置文件的詳細介紹。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-23 14:17:20

WCF配置文件

2009-12-21 11:19:50

WCF配置文件

2009-11-05 10:30:41

WCF Address

2009-12-21 13:06:05

WCF Address

2011-03-28 09:07:26

Nagios配置文件

2009-11-09 13:31:09

WCF服務端配置

2009-12-22 15:02:40

WCF限流

2009-12-16 16:51:05

Ruby on Rai

2021-07-05 12:09:58

Python編程語言

2022-11-10 09:05:18

Lua配置文件

2010-03-01 17:39:07

WCF Address

2010-02-24 14:10:54

WCF修改App.co

2009-12-22 10:29:59

WCF客戶端處理

2021-07-13 05:47:40

GroovyJSON軟件開發

2009-12-08 17:34:25

WCF的配置

2009-11-09 17:17:31

WCF元數據交換

2010-01-05 11:26:27

.net Framew

2010-08-26 10:28:43

2010-02-03 09:19:31

Python模塊

2010-03-18 18:17:01

Python 配置文件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产成人在线视频 | 成人欧美一区二区 | 激情一区二区三区 | 日韩免费一区二区 | 婷婷丁香在线视频 | 另类视频在线 | 日韩电影免费在线观看中文字幕 | 日韩色图视频 | 这里只有精品999 | av一区二区三区四区 | 精品少妇v888av | 91亚洲精品国偷拍自产在线观看 | 天天综合亚洲 | 中文字幕 在线观看 | 日韩一区二区三区在线看 | 亚洲一区网站 | 国产乱码精品一区二区三区中文 | 久久久女女女女999久久 | 国产精品成人av | ririsao久久精品一区 | 国产成人jvid在线播放 | 久久中文字幕一区 | 96国产精品久久久久aⅴ四区 | 国产一级在线观看 | av资源中文在线天堂 | 日日日日日日bbbbb视频 | 男女污网站 | 国产二区三区 | 久久久亚洲 | 色视频成人在线观看免 | 亚洲综合大片69999 | 狠狠久久综合 | 国产999精品久久久 午夜天堂精品久久久久 | 日韩电影在线 | 欧美久久视频 | 国产高清视频在线播放 | 久久综合亚洲 | 日日操网站 | 天天av天天好逼 | 在线看片国产 | 国产精品一区久久久 |