<endpointbehaviors>和<servicebehaviors>之间的区别

时间:2015-12-30 09:04:19

标签: asp.net wcf

我不确定我理解web.config元素<endpointBehaviors><serviceBehaviors>之间的区别(当然还有相邻的行为)。

2 个答案:

答案 0 :(得分:9)

来自here

  
      
  1. ServiceBehavior仅适用于服务,而EndpointBehavior适用于客户端和服务。

  2.   
  3. ServiceBehavior可以通过config / attribute / code指定,而endpointbehavior可以通过config / code指定。

  4.   
  5. ServiceBehavior可以访问所有ServiceEndpoints调度运行时,因此可以修改所有调度运行时   仅使用该端点的运行时调用Endpointbehavior。

  6.         

    以这种方式查看,ServiceBehavior允许您访问所有端点的运行时参数,而Endpointbehavior允许您仅访问该端点的运行时组件。因此,如果您需要扩展产生整个合同(或多个合同)的功能,那么请使用ServiceBehavior,如果您有兴趣扩展一个特定端点,请使用Endpointbehavior。

总是可以参考MSDN获取详细信息:

  

<endpointBehaviors>此配置部分代表所有   为特定端点定义的行为。

     

<serviceBehaviors>这个   配置部分表示为a定义的所有行为   具体服务。

一个好的MSDN参考:Configuring and Extending the Runtime with Behaviors

答案 1 :(得分:2)

一些可用性差异

  1. ServiceBehavior仅适用于服务,而EndpointBehavior适用于客户端和服务。

  2. ServiceBehavior可以通过config / attribute / code指定,而endpointbehavior可以通过config / code指定。

  3. ServiceBehavior可以访问所有ServiceEndpoints调度运行时,因此可以修改所有调度运行时,同时仅使用该端点的运行时调用Endpointbehavior。

  4. 以这种方式查看,ServiceBehavior允许您访问所有端点的运行时参数,而Endpointbehavior允许您仅访问该端点的运行时组件。因此,如果您需要扩展产生整个合同(或多个合同)的功能,那么请使用ServiceBehavior,如果您有兴趣扩展一个特定端点,请使用Endpointbehavior。

    当然最大的区别是,如果你想在客户端自定义端点,那么唯一的选择就是IEndpointBehavior。

    合同规定了服务的实际功能。换句话说,什么操作是有效的。

    Endpoint指定服务的实际运行实例。它是在Windows服务或IIS下执行的实际“服务”。

    服务行为定义端点与客户端的交互方式。安全性,并发性,缓存,日志记录等属性 - 这些都是行为的一部分。

    还有一个类似于服务行为的操作行为,但仅在运行特定操作时应用。