【问题标题】:Difference between <endpointBehaviors> and <serviceBehaviors><endpointBehaviors> 和 <serviceBehaviors> 之间的区别
【发布时间】:2015-12-30 09:04:18
【问题描述】:

我不确定我是否理解 web.config 元素 &lt;endpointBehaviors&gt;&lt;serviceBehaviors&gt; 之间的区别(当然还有相邻的行为)。

【问题讨论】:

    标签: asp.net wcf


    【解决方案1】:

    来自here

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

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

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

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

    也可以随时参考MSDN了解详情:

    &lt;endpointBehaviors&gt;这个配置部分代表了所有 为特定端点定义的行为。

    &lt;serviceBehaviors&gt;这个 配置部分表示为一个定义的所有行为 具体服务。

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

    【讨论】:

      【解决方案2】:

      一些可用性差异是

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

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

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

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

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

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

      端点指定服务的实际运行实例。它是实际的“服务”,无论是作为 Windows 服务还是在 IIS 下执行。

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2020-05-10
      • 2014-09-20
      • 2010-10-28
      • 2015-10-04
      • 2012-08-12
      • 2011-02-18
      • 2019-12-21
      相关资源
      最近更新 更多