我不确定我理解web.config元素<endpointBehaviors>
和<serviceBehaviors>
之间的区别(当然还有相邻的行为)。
答案 0 :(得分:9)
来自here:
ServiceBehavior仅适用于服务,而EndpointBehavior适用于客户端和服务。
ServiceBehavior可以通过config / attribute / code指定,而endpointbehavior可以通过config / code指定。
- 醇>
ServiceBehavior可以访问所有ServiceEndpoints调度运行时,因此可以修改所有调度运行时 仅使用该端点的运行时调用Endpointbehavior。
以这种方式查看,ServiceBehavior允许您访问所有端点的运行时参数,而Endpointbehavior允许您仅访问该端点的运行时组件。因此,如果您需要扩展产生整个合同(或多个合同)的功能,那么请使用ServiceBehavior,如果您有兴趣扩展一个特定端点,请使用Endpointbehavior。
总是可以参考MSDN获取详细信息:
<endpointBehaviors>
此配置部分代表所有 为特定端点定义的行为。
<serviceBehaviors>
这个 配置部分表示为a定义的所有行为 具体服务。
一个好的MSDN参考:Configuring and Extending the Runtime with Behaviors
答案 1 :(得分:2)
一些可用性差异
ServiceBehavior仅适用于服务,而EndpointBehavior适用于客户端和服务。
ServiceBehavior可以通过config / attribute / code指定,而endpointbehavior可以通过config / code指定。
ServiceBehavior可以访问所有ServiceEndpoints调度运行时,因此可以修改所有调度运行时,同时仅使用该端点的运行时调用Endpointbehavior。
以这种方式查看,ServiceBehavior允许您访问所有端点的运行时参数,而Endpointbehavior允许您仅访问该端点的运行时组件。因此,如果您需要扩展产生整个合同(或多个合同)的功能,那么请使用ServiceBehavior,如果您有兴趣扩展一个特定端点,请使用Endpointbehavior。
当然最大的区别是,如果你想在客户端自定义端点,那么唯一的选择就是IEndpointBehavior。
合同规定了服务的实际功能。换句话说,什么操作是有效的。
Endpoint指定服务的实际运行实例。它是在Windows服务或IIS下执行的实际“服务”。
服务行为定义端点与客户端的交互方式。安全性,并发性,缓存,日志记录等属性 - 这些都是行为的一部分。
还有一个类似于服务行为的操作行为,但仅在运行特定操作时应用。