WCF 面试题及详细答案(完整版、实战向)-1_第1页
WCF 面试题及详细答案(完整版、实战向)-1_第2页
WCF 面试题及详细答案(完整版、实战向)-1_第3页
WCF 面试题及详细答案(完整版、实战向)-1_第4页
WCF 面试题及详细答案(完整版、实战向)-1_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WCF面试题及详细答案(完整版、实战向)一、基础概念类(入门必问)1、什么是WCF?它的核心作用是什么?WCF是WindowsCommunicationFoundation,是.NET平台下统一的分布式通信框架。在WCF出现之前,.NET分布式通信技术比较零散,WebService、.NETRemoting、MSMQ、Socket各自独立、语法不统一、不能互通。WCF将所有分布式通信技术整合为一套统一的编程模型,只需要修改配置,就能切换不同通信方式,无需改动业务代码。核心作用:实现跨进程、跨机器、跨网络、跨平台的服务通信,是传统.NET项目SOA架构的核心框架。2、WCF和WebService、Remoting的区别?1)WebService(ASMX)只支持HTTP协议、无安全控制、无事务、无可靠消息,只能做简单的http接口调用,功能单一,仅限简单外网通信。2).NETRemoting仅限.NET平台、主要用TCP协议、性能高,但跨平台差、安全性弱、配置繁琐,不适合对外服务。3)WCF整合两者所有优点,支持HTTP、TCP、IPC、MSMQ多种协议,自带安全、事务、可靠消息、限流、日志等企业级特性,是企业级分布式服务的最优方案。3、什么是SOA架构?WCF如何体现SOA?SOA即面向服务的架构,核心思想是服务松耦合、可复用、可独立部署、跨平台调用。WCF完全贴合SOA思想:服务和客户端完全解耦、通过契约定义接口、服务独立部署、任意客户端只要符合协议标准即可调用,不依赖具体平台。4、WCF的四大核心要素是什么?四大核心要素:契约、绑定、地址、行为地址(Address):服务在哪里,定义服务的访问地址、端口、路径绑定(Binding):怎么通信,定义协议、编码、安全、传输模式契约(Contract):能做什么,定义服务接口、方法、参数、返回值行为(Behavior):运行时怎么管控,控制服务实例、并发、权限、日志、异常等5、WCF三种契约分别是什么?作用是什么?服务契约(ServiceContract):定义服务对外暴露的接口和方法,是服务的功能声明数据契约(DataContract):定义传输的实体对象,标记哪些字段可以序列化传输,替代传统的XML序列化消息契约(MessageContract):精细化控制SOAP消息格式,可以自定义消息头、消息体、消息参数位置,多用于对接第三方特殊接口二、绑定与协议类(高频面试)6、WCF常用绑定有哪些?各自适用场景?常用5种绑定,企业项目最常用前三种:BasicHttpBinding:兼容传统WebService,基于HTTP明文,无安全、无事务,适合简单外网公开接口WSHttpBinding:企业级HTTP绑定,支持安全、事务、可靠消息,适合外网、跨平台、安全要求高的接口NetTcpBinding:基于TCP协议,速度快、性能高、长连接,适合内网服务调用、服务之间互相通信NetNamedPipeBinding:基于管道,仅限本机进程间通信,性能最高,单机内部服务调用使用NetMsmqBinding:基于消息队列,支持离线通信、消息持久化,适合高并发、异步、容错场景7、BasicHttpBinding和WSHttpBinding最大区别?1、BasicHttpBinding是无安全、无事务、无可靠消息,兼容ASMXWebService,标准WS-I基础协议;2、WSHttpBinding默认开启安全,支持WS系列协议(WS-Security、WS-Transaction、WS-ReliableMessaging),支持加密、认证、事务一致性。简单总结:公开简单接口用Basic,企业级安全接口用WSHttp。8、TCP绑定比HTTP绑定优势是什么?1、TCP是长连接、二进制传输,数据包更小、传输效率远高于HTTP;2、支持双向通信、流式传输,适合大数据、高频调用场景;3、内置会话支持,稳定性更强,适合内网微服务、系统内部交互。缺点:端口容易被防火墙拦截,不适合外网公开访问。三、实例与并发机制(重难点)9、WCF三种实例模式及区别?面试必背实例模式控制服务对象的创建和销毁,是WCF性能核心考点:PerCall(每次调用):默认模式。每一次客户端请求,都会新建一个服务对象,请求结束立即销毁。线程安全、无状态,并发性能好,资源消耗适中。PerSession(每个会话):每个客户端连接会话创建一个服务对象,会话断开才销毁。可以保留会话状态,适合需要记录客户端状态的场景,占用资源更高。Single(单例):全局只有一个服务对象,所有客户端共享同一个实例。资源占用最低,但线程不安全,需要手动加锁,适合全局共享配置、静态服务场景。10、WCF并发模式有几种?区别是什么?Single:单线程执行,同一时间只能处理一个请求,并发最低,线程安全,不用加锁Multiple:多线程并发处理多个请求,性能最高,非线程安全,业务代码需要自行处理锁和并发冲突Reentrant:可重入模式,服务可以回调自身,适合双向通信、回调场景,使用较少11、PerSession为什么TCP支持、HTTP默认不支持?HTTP协议默认是无状态短连接,每次请求都是独立的,没有固定会话通道;而TCP是长连接,客户端和服务端会建立持续会话通道,所以NetTcpBinding默认支持会话,BasicHttp、WSHttp默认无会话。四、安全与认证(企业实战重点)12、WCF安全认证方式有哪些?主流两种安全模式:传输安全、消息安全1)传输安全(Transport)在传输层加密,常用HTTPS、TCP加密,速度快、性能高,适合内网、信任网络。只对传输链路加密,消息本身不加密。2)消息安全(Message)对整个SOAP消息体加密、签名,端到端安全,即使经过代理、中转也不会泄露,安全性更高,外网对外服务首选,性能略低。13、WCF常用客户端认证方式?用户名密码认证(最常用)Windows域账号认证(内网域环境)证书认证(高安全对外接口)五、事务与可靠通信14、WCF事务特性及使用方式?WCF支持分布式事务,通过TransactionFlow特性开启,支持跨服务、跨数据库事务一致性。使用要点:1、绑定必须支持事务(WSHttp、NetTcp支持,BasicHttp不支持);2、服务方法开启事务流转;3、配合TransactionScope实现分布式事务回滚。15、什么是WCF可靠消息?作用是什么?可靠消息基于WS-ReliableMessaging协议,作用是保证消息可靠送达、不重复、不丢失、有序执行。网络不稳定、断网重连场景下,能保障接口调用一致性,适合支付、订单、数据同步等核心业务。六、duplex双向通信16、WCF双向通信原理及适用场景?普通WCF都是客户端主动请求、服务端响应,是单向请求模式。Duplex双向通信是服务端可以主动回调客户端方法。原理:客户端同时开启一个监听通道,服务端保存客户端回调实例,需要推送数据时主动调用客户端接口。适用场景:消息推送、实时进度更新、聊天室、设备状态上报、长轮询业务。常用绑定:NetTcpBinding、WSDualHttpBinding。七、异常与序列化17、WCF异常处理机制?为什么不能直接抛普通Exception?WCF默认会屏蔽服务端详细异常信息,防止敏感错误暴露给客户端,直接抛普通异常客户端只能收到“未知错误”。企业标准做法:使用FaultException自定义异常,配合FaultContract契约,将结构化错误信息返回给客户端,方便前端捕获和处理。18、DataContract序列化和普通XML序列化区别?1、DataContract默认只序列化标记过的字段,安全性更高;普通XML序列化默认序列化所有公共字段。2、DataContract版本兼容更好,支持字段增减、兼容新旧客户端。3、序列化体积更小、速度更快,是WCF标准序列化方式。八、部署与托管方式19、WCF三种托管方式?IIS托管:部署简单、自动启动、适合HTTP外网服务,依赖IIS自托管(控制台/WinForm):灵活、可自定义启动逻辑,适合TCP内网服务,需手动启动运行Windows服务托管:常驻后台、开机自启、稳定,生产环境最常用20、WCF常见性能优化方案?内网优先使用NetTcpBinding替代Http,提升传输速度合理配置实例模式,高并发使用PerCall+Multiple并发关闭不必要的安全、可靠消息,减少性能开销开启数据压缩、调整最大消息长度、缓冲区大小实体只序列化必要字段,精简传输数据九、实战坑点与面试压轴题21、WCF最大报文长度溢出问题如何解决?默认配置下WCF限制最大传输数据大小,传输大文件、大数据列表会直接报错。解决方案:在服务端和客户端配置中,同时修改maxReceivedMessageSize、bufferSize、readerQuotas相关参数,放大报文限制,必须两端同步修改,否则依然报错。22、WCF跨域问题如何处理?WCF对外HTTP接口被前端调用时会出现跨域,默认不支持跨域请求。解决方式:自定义跨域行为类,在服务运行时拦截OPTIONS预检请求,添加跨域响应头,或者通过IIS配置跨域规则。23、WCF相比WebApi的劣势?为什么现在项目很少用WCF?1、WC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论