前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【翻译】WCF4.5:更少的配置和ASP.NET更好的支持

【翻译】WCF4.5:更少的配置和ASP.NET更好的支持

作者头像
liulun
发布2022-05-09 12:31:29
5380
发布2022-05-09 12:31:29
举报
文章被收录于专栏:liulunliulun

原文地址:

http://www.infoq.com/news/2012/02/WCF-4.5

Ido Flatow发表了一些列的博客,来讲述.NET4.5中关于WCF的更新

链接地址:

http://blogs.microsoft.co.il/blogs/idof/archive/2011/10/05/what-s-new-in-wcf-4-5-automatic-https-endpoint-for-iis.aspx

(有时间的话我会陆续翻译)

出于削减复杂性的目的,WCF自动生成的配置文件将会变得非常、非常的小。自从第一个版本的WCF以来,开发人员发现他们需要维护一个大概有30个配置节的app.config文件,而这些配置节都可以用默认值来代替。谁都知道删除这些多余的设置比较好,但不幸的是,谁都没有学会这一招!在WCF 4.5中配置文件只需要设置绑定的类型和名称即可!

当然这导致了另一个问题:“我怎么知道这些设置是什么呢?”为了回答这个问题,我们必须知道配置文件后端的代码(与配置信息相关的代码),并且配置文件的提示并不在是基于schema的智能提示。如果你正在编辑一个endpoint,你需要知道一个behavior的名字,这个时候开发工具会把可用的behavior的名字都给你列出来。在编译时一些配置文件的错误,如契约类型(contract type)行为名称(behavior name)的错误都会被提示出来。

对于那些直接使用WSDL的开发人员来说,也有好消息。WCF 4.5将会在一个单独的请求中返回一个完整的WSDL。在此之前,只会包含一部分WSDL,这将需要一系列的XSD文件来匹配这个WSDL。使用?singleWsdl查询字符串取代?singleWsdl可以使用这个改进

把WCF服务寄宿到系统服务内是完全可行的。但大多数开发人员继续在IIS下完成大量的工作。为什么呢?因为IIS提供了很多内置的支持功能,比如身份验证,状态管理和进程回收等。但在IIS下开发WCF服务仍然有一些限制,微软也正在解决这些问题。比如:必须通过配置才能解决在两个地方的身份认证服务,如果他们由于异常而没有同步,那么这个WCF服务就会停止运行。WCF4.5通过允许服务按IIS的方式来进行身份认证(设置身份认证的方式为“继承自宿主InheritedFromHost”)除掉了此类型的BUG

不幸的的是这只是一个局部修复,如果IIS激活了多个身份验证类型,那么客户端只会知道第一个。当然客户端开发人员会找到另一种方法解决这个问题:他们可以使用另一种类型重写这个身份验证类型。

在为基于HTTPS的服务构造URIs对象时,在WSDL信息中显示了一个BUG,在.net 4中WCF有自动选择端口的特性(针对各种类型的绑定,TCP,HTTP等)不幸的是,HTTPS在那是还没有被包括进来。在.NET4.5中这些疏忽将被纠正。Ido Flatow认为HTTPS 版本是在为主机名做广告而不是访问WSDL的宿主名(host name),这些可能将成为使用web form时的问题。

另一个bug是关于WCF传输流数据的,Ido Flatow:

当你把WCF服务寄宿在IIS上时,即使你没有使用asp.net兼容模式,你也一样会得到asp.net处理管线的一部分。可以在MSDN文档:WCF服务和ASP.NET(查找PostAuthenticateRequest Event部分)找到相关内容。在.Net 4中,ASP.NET里有一个设计缺陷,对WCF的请求会在ASP.NET中缓冲,这些缓冲行为会引起一些副作用

这不仅仅造成处理请求的延时,更严重的是,相当大的一部分内容溢出到硬盘上了。

在WCF 4.5中解决了这个问题。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档