剖析WCF配置全过程

开发 后端
随着时代的进步科技的发展WCF配置 版本也快速的提升与升级,下面我就对升级前和升级后的WCF配置,做一下自己的解析。希望能够对大家有帮助

如果WCF配置为空,那么endpoint的地址就是默认的基地址(Base Address)。例如WCF配置的地址就是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> 

当我们在定义一个实现了Service Contract的类时, binding和address信息是客户端必须知道的,否则无法调用该服务。然而,如果需要指定服务在执行方面的相关特性时,就必须定义服务的behavior。在WCF中,定义behavior就可以设置服务的运行时属性,甚至于通过自定义behavior插入一些自定义类型。例如通过指定ServiceMetadataBehavior,可以使WCF服务对外公布Metadata。WCF配置如下:

  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配置文件中才是***的设计方式。#t#

利用ServiceBehavior与OperationBehavior可以控制服务的如下属性:

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

 

责任编辑:chenqingxiang 来源: 百度博客
相关推荐

2011-02-22 10:46:02

Samba配置

2009-06-09 16:17:45

SQL Server

2011-04-02 09:20:23

freebsdmrtg安装

2011-04-18 15:56:10

软件测试

2011-01-21 17:51:52

2009-04-13 12:37:18

2011-09-06 15:38:20

QT安装

2012-11-06 10:19:18

Java自定义加载Java类

2010-11-19 10:11:49

Oracle物化视图

2010-03-01 17:01:03

Python编程技巧

2009-06-10 16:55:42

cygwin netb安装

2010-03-10 13:24:45

Zend Debugg

2010-06-17 13:10:09

Linux Grub修

2011-03-11 10:39:02

YUM安装LAMP

2010-07-21 14:51:19

telnet-serv

2010-06-12 10:03:20

Ubuntu Grub

2019-05-14 15:27:31

MongoDB自动备份数据库

2010-05-13 16:15:21

MySQL5 mast

2009-12-01 09:30:45

2010-06-11 13:15:07

UML软件
点赞
收藏

51CTO技术栈公众号