26.1 WCF的含义

WCF技术允许创建服务,可以跨进程、计算机和网络从其他应用程序访问这些服务。利用这些服务,可以共享跨多个应用程序的功能,提供数据源,或者抽象复杂的进程。与Web服务一样,WCF服务提供的功能也封装为该服务的方法。每个方法——在WCF术语中称为“操作(operation)”——都有一个端点,用于交换数据。在这一点上,WCF与Web服务不同。在Web服务中,只能在HTTP上通过SOAP与端点通信。而在WCF服务中,可以选择要使用的协议。甚至可以通过多个协议与端点通信,这取决于通过什么网络连接服务和特定的要求。在WCF上,端点可以有多个绑定,每个绑定都指定了一种通信方式。绑定还可以指定其他信息,必须满足什么安全要求才能与端点通信。绑定可能需要用户名和密码身份验证或者Windows用户账户令牌。在连接一个端点时,绑定使用的协议会影响所使用的地址,如后面所述。一旦连接了一个端点,就可以使用SOAP消息与它通信。所使用的消息形式取决于所进行的操作和该操作收发消息所需的数据结构。WCF使用合同(contract)指定所有这些信息。通过与服务交换的元数据可以查找合同。这类似于Web服务使用WSDL描述其功能。实际上,可以用WSDL格式获得WCF服务的相关信息,但WCF服务还可以用其他方式描述。识别出要使用的服务和端点,知道了要使用的绑定和需要依从的合同之后,就可以与WCF服务通信,这与使用在本地定义的对象一样简单。与WCF服务通信可以是简单的单向事务、请求/响应消息,也可以是从通信信道任一端发出的全双工通信。还可以在需要时使用消息负载优化技术,如Message Transmission Optimization Mechanism(MTOM)来打包数据。

WCF服务在存储它的计算机上运行为许多不同进程中的一个。Web服务总是运行在IIS上,而WCF服务可以选择适合的宿主进程。可以使用IIS驻留WCF服务,也可以使用Windows服务或可执行程序。如果使用TCP在本地网络上与WCF服务通信,就不需要在运行服务的PC上安装IIS。了解更多关于使用WCF TCP绑定的详细测试代码,可以参考这个Wcf Tcp绑定测试代码

WCF架构允许定制本节介绍的几乎所有方面。但这是一个高级主题,本章仅使用.NET 4默认提供的技术。了解了WCF服务的基础知识后,下面将详细介绍这些概念。为了深入了解WCF多服务多端点的示例代码,可以访问这个WCF多服务多端点的示例代码

26.2 WCF概念

本节描述WCF的如下方面:

  • WCF通信协议

  • 地址、端点和绑定

  • 合同

您可以全面掌握WCF的强大功能和灵活性,无论是在理论层面还是实践应用中!