介紹wcf中的信息交換模式MEP以及數據在傳輸過程當中的序列化,endpont的介紹和wcf的三種實例模式以及安全模式 以及和Webapi的簡單對比。html
支持跨平臺。web
支持多種協議 tcp, named pipes, HTTP, HTTPS, 消息隊列MSMQjson
支持部署在IIS,應用程序或windows服務等windows
配置比起比較麻煩,定義各類協議,契約,以及行爲。api
TCP對應於傳輸層 通常流媒體用的多。瀏覽器
http是對應於應用層,是創建在tcp基礎之上。 http鏈接是會選創建tcp鏈接,請求完成之後,斷開與tcp的鏈接 。是一種無狀態的鏈接 ,網頁的請求服務通常會用http鏈接安全
包括單工通訊,雙工通訊和請求應答服務器
單工通訊:只發送不接收。 好比告訴消息讓你排隊。不但願接收到消息session
雙工通訊:客戶端和服務端均可以發送和接收。好比發佈訂閱模式就是採用雙工。tcp
請求應答:用的最多,客戶端發送請求,同步等待返回結果 。
數據要序列化之後才能傳輸,因此傳輸的數據必須先序列化以才能傳輸
類上加 [Serializable] 表示使用的Soap序列化傳輸,
類上加【XmlSerializeFormat】,字段上加[XmlElement,XmlAttribute]表示使用的是xml序列化。若是model是第三方提供的,能夠用這種方式傳輸[XmlSerializeFormat]
類上加Datacontract,字段上加DataMember表示使用的是DataContract序列化,這種序列化比xmlserialize快,
DataContractJsonSerializer 也支持json序列化。 對接收到的數據直接調用DataContractJsonSerializer轉爲json
客戶端與服務端經過Endpoint進行交互 ,Endpoint的三要素ABC, Address表示服務器地址,Binding表示選擇哪一種傳輸的協議(TCP,http,ssl, soap)Contract契約(服務、操做、數據Contract)表示消息包含的內容 以及信息交換模式(one-way單工模式, duplex 雙工械, request/reply請求響應模式)
Per call :每次調用都會建立一個實例。能有效利用內存,但須要特別手段維護Session
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Percall)]
Per session :每一個用戶的整個會話期創建一個session
[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
Single:單例模式,全部用戶共享一個session
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
主要是傳輸安全,包括
傳輸層安全
和消息層安全
https://www.cnblogs.com/artech/archive/2011/05/22/authentication_01.html
若是應用須要支付 消息隊列和全雙工通訊則必需要用wcf ,
但若是要用到http的一些特徵,好比request, response, 及多不一樣客戶端時須要用到webapi .
我對個人文章負責,發現好多網上的文章 沒有實踐,都發出來的,讓人走不少彎路,若是你在個人文章中遇到沒法實現,或者沒法走通的問題。能夠直接在公衆號《愛碼農愛生活 》留言。一定會再次複查緣由。讓每一篇 文章的流程都能順利實現。