初步分析WCF WEB使用规则

开发 后端
经过长时间学习WCF WEB,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西,学习WCF WEB时,在这里拿出来和大家分享一下

原来上网我下了很多WCF WEB的Demo。而我用的是VS2005,我在使用这些小样时,基本上绝大部分基于VS2003的Asp.net工程都因为少数文件无法转换而无法加载工程,为此我也苦恼很久,后来终于让我找到了解决办法。

如果address值为空,WCF WEB那么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> 

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

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


WCF WEB中,behavior被定义为Attribute,其中,System.ServiceModel.ServiceBehaviorAttribute和System.ServiceModel.OperationBehaviorAttribute是最常用的behavior。虽然,behavior作为Attribute可以通过编程的方式直接施加到服务上,但出于灵活性的考虑,将behavior定义到配置文件中才是最好的设计方式。

责任编辑:chenqingxiang 来源: 51CTO.com
相关推荐

2009-11-24 09:43:21

2009-12-07 15:37:00

WCF控件

2009-11-05 14:40:08

WCF KnownTy

2009-12-11 13:49:39

VS Web服务

2009-11-09 10:43:51

WCF Web编程模型

2011-10-27 16:24:48

API

2010-02-24 17:47:05

WCF集合类型

2009-11-06 13:33:56

WCF Dispatc

2009-11-06 09:22:46

WCF应用

2009-11-05 10:37:58

WCF Address

2011-02-25 10:06:39

ibmdwWebSphere

2009-11-05 11:23:08

WCF宿主

2011-03-24 09:36:48

AzureWCF Service

2009-11-05 09:43:11

WCF好处

2009-11-05 10:13:39

WCF框架

2009-11-06 10:11:34

WCF和Web Ser

2009-12-08 17:16:37

WCF Web Ser

2009-11-05 13:21:41

WCF架构

2009-11-05 13:54:07

WCF Service

2009-06-26 17:37:37

JBOSS配置
点赞
收藏

51CTO技术栈公众号