惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
罗磊的独立博客
F
Fortinet All Blogs
T
Threatpost
Y
Y Combinator Blog
博客园_首页
美团技术团队
Security Latest
Security Latest
博客园 - 三生石上(FineUI控件)
T
Tailwind CSS Blog
V
V2EX - 技术
The Cloudflare Blog
L
LINUX DO - 热门话题
博客园 - 司徒正美
Jina AI
Jina AI
P
Proofpoint News Feed
宝玉的分享
宝玉的分享
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
WordPress大学
WordPress大学
The Hacker News
The Hacker News
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
M
MIT News - Artificial intelligence
Latest news
Latest news
NISL@THU
NISL@THU
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
雷峰网
雷峰网
Application and Cybersecurity Blog
Application and Cybersecurity Blog
B
Blog RSS Feed
W
WeLiveSecurity
D
DataBreaches.Net
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
Know Your Adversary
Know Your Adversary
TaoSecurity Blog
TaoSecurity Blog
S
Securelist
Help Net Security
Help Net Security

博客园 - 水木

为什么要监控sql语句,以及如何监控,都有哪几种方式可以监控。 关于hexo与github使用过程中的问题与笔记 - 水木 - 博客园 IIS错误代码500.21 ,Nhibernate更新报错,委托的使用。action传参数 mysql 使用的三个小技巧 利用反向代理服务器,加快国内对国外主机的访问 - 水木 2019年七月第三周总结 ManualResetEven使用的最清楚说明 如何画数据流图 如何画好ER图 UML图中时序图的基本用法 系统架构设计上需要注意的 weblogic介绍 - 水木 - 博客园 Tuxedo 介绍 winform如何不卡界面 银行基金代销系统调研 如何在wcf中用net tcp协议进行通讯 20190710用控制台启动一个wcf服务 2019年7月第一周总结-RabbitMQ总结 RabbitMQ入门学习系列(七) 远程调用RPC
wcf必知必会以及与Webapi的区别
水木 · 2019-07-10 · via 博客园 - 水木

快速阅读

介绍wcf中的信息交换模式MEP以及数据在传输过程中的序列化,endpont的介绍和wcf的三种实例模式以及安全模式 以及和Webapi的简单对比。

wcf介绍

支持跨平台。

支持多种协议 tcp, named pipes, HTTP, HTTPS, 消息队列MSMQ

支持部署在IIS,应用程序或windows服务等

配置比起比较麻烦,定义各种协议,契约,以及行为。

HTTP协议与TCP协议的比较

TCP对应于传输层 一般流媒体用的多。

http是对应于应用层,是建立在tcp基础之上。 http连接是会选建立tcp连接,请求完成以后,断开与tcp的连接 。是一种无状态的连接 ,网页的请求服务一般会用http连接

信息交换模式MEP

包括单工通信,双工通信和请求应答

  1. 单工通信:只发送不接收。 比如告诉消息让你排队。不希望接收到消息

  2. 双工通信:客户端和服务端都可以发送和接收。比如发布订阅模式就是采用双工。

  3. 请求应答:用的最多,客户端发送请求,同步等待返回结果 。

数据序列化

数据要序列化以后才能传输,所以传输的数据必须先序列化以才能传输

  1. 类上加 [Serializable] 表示使用的Soap序列化传输,

  2. 类上加【XmlSerializeFormat】,字段上加[XmlElement,XmlAttribute]表示使用的是xml序列化。如果model是第三方提供的,可以用这种方式传输[XmlSerializeFormat]

  3. 类上加Datacontract,字段上加DataMember表示使用的是DataContract序列化,这种序列化比xmlserialize快,

  4. DataContractJsonSerializer 也支持json序列化。 对接收到的数据直接调用DataContractJsonSerializer转为json

Endpoint

客户端与服务端通过Endpoint进行交互 ,Endpoint的三要素ABC, Address表示服务器地址,Binding表示选择哪种传输的协议(TCP,http,ssl, soap)Contract契约(服务、操作、数据Contract)表示消息包含的内容 以及信息交换模式(one-way单工模式, duplex 双工械, request/reply请求响应模式)

wcf的实例模式

  1. Per call :每次调用都会创建一个实例。能有效利用内存,但需要特别手段维护Session

    [ServiceBehavior(InstanceContextMode=InstanceContextMode.Percall)]
    
  2. Per session :每个用户的整个会话期建立一个session

    [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
    
  3. Single:单例模式,所有用户共享一个session

    [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
    

wcf安全模式

主要是传输安全,包括

传输层安全

和消息层安全

https://www.cnblogs.com/artech/archive/2011/05/22/authentication_01.html

webapi

  1. 可以把服务暴露给一系列客户端,包括浏览器,手机和平板
  2. 可以使用http所有特征,如URI,request/response header.
  3. 可以支持多种数据格式 xml, json, text

如何选择

如果应用需要支付 消息队列和全双工通信则必须要用wcf ,

但如果要用到http的一些特征,比如request, response, 及多不同客户端时需要用到webapi .

友情提示

​ 我对我的文章负责,发现好多网上的文章 没有实践,都发出来的,让人走很多弯路,如果你在我的文章中遇到无法实现,或者无法走通的问题。可以直接在公众号《爱码农爱生活 》留言。必定会再次复查原因。让每一篇 文章的流程都能顺利实现。