天天看點

WCF 雙工模式

wcf之消息模式分為:

1、請求/答複模式

2、單向模式

3、雙工模式

其中,請求/答複模式,在博文:

<a target="_blank" href="http://blog.csdn.net/jiankunking/article/details/44118625"> wcf 入門教程一(動手建立第一個wcf程式并部署)</a>

<a target="_blank" href="http://blog.csdn.net/jiankunking/article/details/44275359">wcf 入門教程二</a>

中進行了詳細介紹,此處将主要介紹:單向模式與雙工模式。

1、首先,先建立一個wcf應用程式:

WCF 雙工模式

建立完成後,目錄如下:

WCF 雙工模式

2、删除iservice1.cs和serivce1.svc,或者修改名稱為:calculateservice.svc與icalculateservice.cs後,顯示如下:

WCF 雙工模式

3、icalculateservice.cs檔案内容如下:

4、calculateservice.svc檔案中的内容:

5、修改web.config的配置檔案

6、建立winform用戶端進行測試

7、添加服務端引用:

WCF 雙工模式

小注:

今天在vs2015中建立wcf類庫,又能找到服務了

WCF 雙工模式
WCF 雙工模式

8、用戶端代碼如下:

在wcf回調中需要注意死鎖問題

1、如果wcf中暴露出來的操作,沒有傳回值,則可以通過就是設定回調操作

isoneway=true,這樣回調以後立即釋放服務執行個體,不需要等待用戶端響應消息,也可以避免死鎖。

2、如果wcf中暴露出來的操作,有傳回值,則需要通過,修改服務的servicebehavior的concurrencymode為reentrant或multiple即可。

此時,服務端的死鎖問題搞定了。

下面就需要考慮用戶端的死鎖問題了

用戶端的死鎖問題,通過在用戶端回調函數類中的callbackbehaviorattribute中控制這一行為

服務端死鎖時的提示資訊:

WCF 雙工模式