1.單工模式異步
單向通訊,指通訊只有一個方向進行,即從客戶端流向服務,服務不會發送響應,而客戶端也不會指望會有響應。這種狀況下,客戶端發送消息,而後繼續執行性能
運行後報錯:ui
2.雙工模式spa
雙工模式的特色是,不管使用單向消息發送仍是請求/答覆消息發送方式,服務和客戶端均可以獨立地向對方發送消息,對於必須直接與客戶通訊或消息交換的任意一方提供異步體驗(包括相似於事件的行爲)的服務來講,這種雙向通訊形式很是有用。設計
另外要實現雙工模式,必需要建立第二個接口,該接口包含【在客戶端調用的方法聲明】;且須要設計回調協定,並將回調協定的類型分配給標記服務協定的ServiceContract屬性的CallbackContract屬性。blog
例子:接口
1.首先須要修改WCF服務下的配置文件,將wsHttpBinding修改成支持雙工的事件
wsDualHttpBindingio
2.接口IService中在接口上添加特性:配置
[ServiceContract(SessionMode=SessionMode.Required, CallbackContract=typeof(ICallback))]
接口中的方法須要添加單工特性[OperationContract(IsOneWay=true)]
3.添加「第二個」接口ICallback,用於雙工模式,該接口上不須要添加特性,可是其內的方法須要添加特性[OperationContract(IsOneWay=true)]
4.IService接口的實現類Service1
在該實現類上先添加特性:
[ServiceBehavior(InstanceContractMode=InstanceContract,Mode.PerSession)]
3.請求/響應模式
默認的消息模式就是這個模式。這個模式是指客戶端向服務端發送消息後,服務端會向客戶端發送響應。也就是說:在接收服務到響應之前,客戶端不會繼續執行操做
PS:就算返回類型是void,也屬於請求/響應消息交換;
這個模式缺點是執行操做須要很長時間,會下降客戶端性能和響應能力
優勢:響應消息中可返回SOAP錯誤,這代表可能在通訊或處理中發生了一些與服務有關的錯誤情況