leefuhua

一:WCF基本定义要素
1,ServiceContract服务约定接口,接口中定义操作约定(即客户端可以调用的方法)。

/// <summary>
/// 服务约定
/// </summary>
[ServiceContract]
public interface IUserService
{
//操作约定
[OperationContract]
string ShowName(string name);
}

2,服务约定接口的实现类。

public class UserService : IUserService
{
public string ShowName(string name)
{
return "WCF 服务";
}
}


3,如果是双工模式,需要定义CallbackContract回调约定接口。

/// <summary>
/// 服务约定
/// </summary>
[ServiceContract(CallbackContract = (typeof(IDongCallBack)))]
public interface IUserService
{
//操作约定
[OperationContract]
string ShowName(string name);
}

/// <summary>
/// 回调约定
/// </summary>
public interface IDongCallBack
{
[OperationContract(IsOneWay = true)]
void GetName(string name);
}

3.1:服务端定义服务约定和实现,并声明回调约定接口,回调由客户端实现。例如:服务约定IUservice,实现UserService,回调约定,ICallBack
3.2:客户端需要知道服务约定,并实现回调约定。服务端需要知道IUservice服务接口定义,需要知道ICallback定义,并实现Callback

二,WCF通讯的三种模式
1,请求/应答模式,这是WCF默认的通信模式。
2,单向模式, 使用 IsOneWay=true 标记的操作不得声明输出参数、引用参数或返回值。只能是void类型返回,可以传入参数,不能传出参数。

/// <summary>
/// 服务约定
/// </summary>
[ServiceContract]
public interface IUserService
{
//操作约定
[OperationContract(IsOneWay = true)]
void ShowName(string name);
}


3,双工模式,双工模式建立在答复模式和单向模式的基础之上,实现客户端与服务端相互的调用。
支持回调的绑定有4种:WSDualHttpBinding、NetTcpBinding、NetNamedPipeBinding、NetPeerTcpBinding。

四,WCF调用的2种方式
1,引用服务生成代理对象,调用服务的Client对象方法。
2,使用代码自定义代理对象,但需要保证Endpoint(终结点)完全一致。Enpoint包含Address(发布的地址),binding方式,contract契约(服务接口定义)。

五,WCF中常用的binding方式

BasicHttpBinding: 用于把 WCF 服务当作 ASMX Web 服务。用于兼容旧的Web ASMX 服务。
WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。
WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务。
WSFederationHttpBinding: WS-Federation 安全通讯协议。
NetTcpBinding: 使用 TCP 协议,用于在局域网(Intranet)内跨机器通信。有几个特点:可靠性、事务支持和安全,优化了 WCF 到 WCF 的通信。限制是服务端和客户端都必须使用 WCF来实现。
NetNamedPipeBinding: 使用命名管道进行安全、可靠、高效的单机服务通讯方式。
NetMsmqBinding: 使用消息队列在不同机器间进行非连接通讯。
NetPeerTcpBinding: 使用 P2P 协议在多机器间通讯。
MsmqIntegrationBinding: 将 WCF 消息转化为 MSMQ 消息,使用现有的消息队列系统进行跨机器通讯。

六,WCF常用的的几种寄宿方式
1,控制台寄宿,使用ServiceHost服务主机,给主机添加AddServiceEndpoint(服务终结点),包含终结点的协定类型,binding绑定协议,address终结点地址。

2,IIS寄宿,直接发布到IIS。

3,Windows服务寄宿和控制台寄宿类似,使用ServiceHost创建服务。

4,Winform程序寄宿。

分类:

WCF

技术点:

相关文章: