65.9K
CodeProject 正在变化。 阅读更多。
Home

Windows Communication Foundation 基础知识

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.74/5 (79投票s)

2011 年 9 月 15 日

CPOL

4分钟阅读

viewsIcon

227999

downloadIcon

4

Windows Communication Foundation (WCF) 初学者基础知识

引言

在本文中,我将介绍 Windows Communication Foundation (WCF) 是什么,以及为什么它被引入 .NET Framework 3.0。

背景

在现代应用程序(分布式应用程序)开发中,您可以使用 COM+、.NET Enterprise Services、MSMQ、.NET Remoting、Web 服务等进行通信。所有这些技术都扮演着不同的角色,并且要使用它们,您需要为不同的技术开发不同的解决方案。您必须专注于每种技术而不是应用程序业务逻辑的开发。

WCF 将这些功能统一到一个单一的、通用的、面向服务的编程模型中,用于通信。WCF 提供了一种通用的方法,使用通用的 API,开发人员可以专注于他们的应用程序,而不是通信协议。

Sample Image - maximum width is 600 pixels

为什么我们需要 WCF?

有一个主要的银行系统直接连接到数据库,它通过各种通信协议(如 Remoting、Web 服务等)为 ATM 机、贷款系统等其他系统提供数据。要使用不同的通信协议与不同的系统进行通信,您必须了解该技术。在 WCF 中,您只需为不同的服务创建不同的终结点。无需学习不同的 API。您可以使用一个通用的 API 与不同的系统进行通信。

在 WCF 中,您只需为不同的服务创建不同的终结点。无需学习不同的 API。您可以使用一个通用的 API 与不同的系统进行通信。

Sample Image - maximum width is 600 pixels

Sample Image - maximum width is 600 pixels

WCF 架构

Sample Image - maximum width is 600 pixels

WCF 终结点的 ABC

Sample Image - maximum width is 600 pixels

与 WCF 服务的通信将全部通过终结点进行。终结点指定了一个契约,该契约定义了 Service 类中哪些方法可以通过终结点访问;每个终结点可以公开一组不同的方法。终结点还定义了一个绑定,该绑定指定了客户端如何与服务通信以及终结点托管的地址。

A-地址 (在哪里?):指定服务的位置,例如 http://Myserver/MyService.Clients 将使用此位置与我们的服务进行通信。

//
// The sample address for above transport schema may look like 

https://:81
https://:81/MyService
net.tcp://:82/MyService
net.pipe:///MyPipeService
net.msmq:///private/MyMsMqService
net.msmq:///MyMsMqService

//

B-绑定 (如何?):指定双方在传输、编码和协议方面的通信方式。

WCF 支持九种绑定类型

基本绑定

BasicHttpBinding 类提供,此绑定旨在将 WCF 服务公开为旧的 ASMX Web 服务,以便旧客户端可以与新服务协同工作。当客户端使用此绑定时,它可以使新的 WCF 客户端与旧的 ASMX 服务协同工作。

TCP 绑定

NetTcpBinding 类提供,此绑定使用 TCP 进行内网的跨机通信。它支持多种功能,包括可靠性、事务和安全性,并且针对 WCF 到 WCF 的通信进行了优化。因此,它要求客户端和服务都使用 WCF。

对等网络绑定

NetPeerTcpBinding 类提供,此绑定使用对等网络作为传输。启用对等网络的客户端和服务都订阅同一个网格并向其广播消息。

IPC 绑定

NetNamedPipeBinding 类提供,此绑定使用命名管道作为同一台机器的通信传输。它是最安全的绑定,因为它无法接受来自机器外部的调用,并且支持多种与 TCP 绑定类似的功能。

Web 服务 (WS) 绑定

WSHttpBinding 类提供,此绑定使用 HTTP 或 HTTPS 进行传输,并旨在提供互联网上的各种功能,如可靠性、事务和安全性。

联合 WS 绑定

WSFederationHttpBinding 类提供,它是 WS 绑定的一个特例,提供了对联合安全性的支持。

双工 WS 绑定

WSDualHttpBinding 类提供,此绑定与 WS 绑定类似,但它还支持从服务到客户端的双向通信。

MSMQ 绑定

NetMsmqBinding 类提供,此绑定使用 MSMQ 作为传输,并旨在支持断开连接的队列调用。

MSMQ 集成绑定

MsmqIntegrationBinding 类提供,此绑定将 WCF 消息转换为 MSMQ 消息,或将 MSMQ 消息转换为 WCF 消息,旨在与旧的 MSMQ 客户端互操作。

选择绑定类型

Sample Image - maximum width is 600 pixels

C-契约 (什么?):指定客户端和服务器之间的接口。它是一个带有某些属性的简单接口。

契约类型

Sample Image - maximum width is 600 pixels

托管 WCF 服务的各种方法有哪些?

托管 WCF 服务主要有三种方式:

  • 在自己的应用程序域中自托管服务。当您创建 Service Host 类的对象时,服务即会实例化,并在您调用 Service Host 类的 Close 方法时关闭服务。
  • 托管在 IIS 服务器提供的应用程序域或进程中。
  • 托管在 WAS (Windows Activation Service) 服务器提供的应用程序域和进程中。

选择托管类型

Sample Image - maximum width is 600 pixels

欢迎您的反馈。

© . All rights reserved.