<endpointBehaviors>和<serviceBehaviors>之间的区别

16
我不确定如何区分web.config元素中的和(以及相应的behaviours)。
2个回答

10

来自这里

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

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

  3. ServiceBehavior可以访问所有ServiceEndpoints分派运行时,因此可以修改所有分派运行时,而 Endpointbehavior仅针对该端点调用运行时。

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

同时,MSDN始终可以提供详细信息:

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

<serviceBehaviors>此配置部分表示特定服务定义的所有行为。

一个很好的MSDN参考:使用行为配置和扩展运行时


2

一些可用性差异如下:

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

  2. ServiceBehavior可以通过配置/属性/代码指定,而endpointbehavior可以通过配置/代码指定。

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

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

当然,最大的区别是,如果您想在客户端上自定义端点,则唯一的选择是IEndpointBehavior。

合同指定了服务实际执行的操作。换句话说,哪些操作是有效的。

端点指定了服务的实际运行实例。它是实际的“服务”,因为它执行,可以作为Windows服务或在IIS下运行。

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

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


当从其他来源粘贴信息时,您应该引用并归属于该来源:http://geekswithblogs.net/BizTalkAndOtherTechs/archive/2013/11/08/difference-between-servicebehavior-and-endpointbehavior.aspx。 - Øystein Grande Jaren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接