在WCF中,行为与合同之间有什么区别?从检查配置文件,两者似乎都指向服务功能的接口。为什么他们都需要?
答案 0 :(得分:32)
Cole's Notes版本:
合同指定服务实际执行的操作。换句话说,操作有效。
端点指定服务的实际运行实例。它是执行的意义上的实际“服务”,无论是作为Windows服务还是作为IIS。
服务行为定义端点与客户端的交互方式。安全性,并发性,缓存,日志记录等属性 - 这些都是行为的一部分。
还有操作行为,它类似于服务行为,但仅在运行特定操作时应用。
有关详情,建议您从WCF Architecture Overview开始。
答案 1 :(得分:8)
答案有点迟了但是
下面简要介绍了什么为我带来了光明之光(cudo's to Fred Yang)
<强>的ServiceContract 强>
<强> ServiceBehavior 强>
来自ServiceContract vs ServiceBehavior
在WCF中,ServiceContract属性会影响两个客户端的行为 和服务器,而ServiceBehavior只影响服务器的行为。 ServiceContract可以同时应用于接口和类,但是 ServiceBehavior只能应用于类实现。 ServiceContract影响发出的wsdl,但ServiceBehavior不会 影响wsdl发射。
答案 2 :(得分:7)
合同是接口 - 它定义了WCF服务公开的服务操作,它可能会也可能不会与您的应用程序的未加修饰的代码接口1:1对应。
行为是主机上该接口的实现 - 出于所有意图和目的,“服务。”
答案 3 :(得分:-2)
合同是客户和服务提供商之间的合同。它告诉我们将公开哪些数据。
服务行为是服务行为,它告诉客户服务器在服务时服务的行为方式。让我们假设多个客户端是否正在服务,那么它是否能够处理请求,如何处理多个请求,如何处理多个请求。这些东西都是由服务行为来处理的。