WCF - 行为和合同之间的区别?

时间:2010-01-25 03:33:27

标签: wcf

在WCF中,行为合同之间有什么区别?从检查配置文件,两者似乎都指向服务功能的接口。为什么他们都需要?

4 个答案:

答案 0 :(得分:32)

Cole's Notes版本:

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

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

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

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

有关详情,建议您从WCF Architecture Overview开始。

答案 1 :(得分:8)

答案有点迟了但是

  • 因为我目前正在努力解决两个
  • 之间的差异
  • ,因为这是Google上的第一个结果
  • 因为当前的答案没有给我 aha 时刻

下面简要介绍了什么为我带来了光明之光(cudo's to Fred Yang)

<强>的ServiceContract

  • 会影响客户端和服务器的行为
  • 可以同时适用于界面和类
  • 影响发出的WSDL

<强> ServiceBehavior

  • 仅影响服务器的行为
  • 仅适用于类实现
  • 不影响WSDL

来自ServiceContract vs ServiceBehavior

  

在WCF中,ServiceContract属性会影响两个客户端的行为   和服务器,而ServiceBehavior只影响服务器的行为。   ServiceContract可以同时应用于接口和类,但是   ServiceBehavior只能应用于类实现。   ServiceContract影响发出的wsdl,但ServiceBehavior不会   影响wsdl发射。

答案 2 :(得分:7)

合同接口 - 它定义了WCF服务公开的服务操作,它可能会也可能不会与您的应用程序的未加修饰的代码接口1:1对应。

行为是主机上该接口的实现 - 出于所有意图和目的,“服务。”

答案 3 :(得分:-2)

合同是客户和服务提供商之间的合同。它告诉我们将公开哪些数据。

服务行为是服务行为,它告诉客户服务器在服务时服务的行为方式。让我们假设多个客户端是否正在服务,那么它是否能够处理请求,如何处理多个请求,如何处理多个请求。这些东西都是由服务行为来处理的。