WCF一步一步往前爬(六)

2021-08-26 04:33:09 字數 2143 閱讀 2375

wcf中會話模式(persession)的應用。

persession工作方式:

客戶端建立**物件(proxy)

客戶端第一次呼叫**物件的乙個契約操作,**物件將其呼叫請求傳遞給服務宿主

宿主程式建立新的服務物件,並執行請求操作,如果有必要,返回客戶端應答

客戶端再次發出呼叫操作的請求,宿主會先判斷是否已有建立好的會話,如果存在,則不需要再建立新的服務物件,直接使用老物件即可。

在時間達到指定要求或者因一些特殊原因,會話會過期,此時服務物件銷毀。

對於會話模式,basichttpbinding是不支援的,所以如果是發布到iis,終結點的繫結不能是basichttpbinding,可以選擇nettcpbinding和ws2007httpbinding

下面看看例子:

服務端:

namespace lifecycleservice

}namespace lifecycleservice

public string getinstance()

", instance);

return outstr;

}// 被呼叫的函式,每次被呼叫callcount加1

客戶端:

看看另外兩種模式工作方式:

percall:

客戶端建立**物件(proxy)

客戶端呼叫**物件的乙個契約操作,**物件將其傳遞給服務宿主程式。

宿主應用程式建立一新的服務契約物件,並且執行請求操作

在執行完請求操作後,如果要求有應答,那麼服務契約會給**物件乙個應答,然後銷毀自己(如果實現了idisposable,則呼叫dispose())。

single :

服務端啟動,同時建立服務物件

客戶端通過**呼叫契約操作

第一步中建立的服務物件接受請求 ,並執行操作,進行必要的應答

第一步建立的服務物件將一直保留

服務關閉,第一步建立的物件銷毀

一步一步學python 六 抽象

1 string轉數字 import locale locale atoi str 2 建立函式 函式是可以呼叫 可能包含引數 執行某種行為並返回乙個值 cllable x false callable y true 使用def定義乙個函式 return hello,name 這樣就定義了乙個hel...

一步一步 Sql Azure

一步一步 sql azure 1.使用 windowsazure 平台賬號登陸 2.新建sqlazure server 3.新建資料庫 4.為sql azure server 新增防火牆規則,只有將本機新增到規則裡才能從本機連線到該sqlazure server 5.連線到sql azure ser...

一步一步學Remoting之六 事件

我們先來改造一下上次的程式,為上次的主線程方法新增事件,能不斷的引發事件來匯報處理的進度 public class myeventargs public myeventargs intrate public class myobject console.writeline 主線程方法結束 prote...