高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

WCF 4.5:配置文件更小,对 ASP.NET 的支持更好

  • 2012-03-02
  • 本文字数:1186 字

    阅读完需:约 4 分钟

Ido Flatow 最近发布了一篇文章,其中讲述了一系列 WCF 将在.NET 4.5 中做出的变更

由于减少了噪音,WCF 自动生成的配置文件会大大减小。从 WCF 的第一个版本开始,开发者就发现他们需要维护有接近 30 种设定的 app.config 文件,而事实上都只是默认值。了解配置文件的人会删除冗余的设定,但是遗憾的是很多人都没有学到这项技巧。有了 WCF 4.5,配置文件默认只会有绑定类型和名称。

当然,这会引出相关的培训问题,“我怎么知道设定都是什么呢?” 为了回答这个问题,我们还会在配置文件中看到消息提示和自动完成的功能。这不仅仅是基于 schema 的提示;如果你在配置终端,要行为或者配置的名称,它就会非常智能地帮你列举出来。如果配置项、契约类型或者行为名称的拼写有误,这甚至会包括对编译器警告的支持。

对于那些直接使用 WSDL 的人,也有好消息。WCF 4.5 现在会在单独的请求中返回完整的 WSDL。而之前,它只会包括部分 WSDL,还需要获取一系列匹配的 XSD 文件。想要使用这种方法,你需要使用?singleWsdl 查询字符串而不是?singleWsdl。

尽管把 WCF 部署在 Windows 服务中是完全可以接受的,但是大多数开发者会在工作中继续使用 IIS。为什么不呢,IIS 提供了对很多特性的内建支持,像身份验证、状态管理以及过程回收等。但是在这个模型中还有一些微软正在努力解决的限制。例如,当前开发者需要在两个地方配置哪种身份验证方式能够得到支持。如果他们意外忘记了 sync,那么服务就会停止运行。WCF 4.5 让开发者可以把验证方式类型设置为“InheritedFromHost”,让服务遵从 IIS 的方式,从而避免了这类特定的缺陷。

遗憾的是,这只是部分的修正。如果 IIS 正好启用了多种身份验证类型,那么客户端只会承认第一个。客户端开发者可以对其重写以使用另一种类型,但前提是他们可以找到另一种方式。请注意这完全是客户端工具的问题,WSDL 会列出所有选项。

在 WSDL 中存在的缺陷在于为 HTTPS 服务端口创建 URI 的方面。从.NET 4.0 开始,WCF 就有了为每种绑定类型(HTTP、TCP 等)自动生成端口的选项。遗憾的是,HTTPS 并没有在那次包含进来,这个疏忽会在.NET 4.5 中改正。Ido Flatow 提到,HTTPS 的版本会发送机器名而不是用来请求 WSDL 的主机名。当使用 web 场的时候这会导致问题。

另一种缺陷在于 WCF 使用流数据的方式。Ori 认为,

当你把 WCF 服务部署在 IIS 中时,即便你不使用 ASP.NET 兼容模式,也会占用一些 ASP.NET 的管道,这在 MSDN 的文章《 WCF 服务和 ASP.NET 》中有记录(你需要查找关于 PostAuthenticateRequest 事件的部分)。在.NET 4 中存在 ASP.NET 方面的设计缺陷,它会导致传送给 WCF 的请求缓存在 ASP.NET 中。这种缓存行为会导致多种主要的副作用:

这不仅会让处理请求产生延迟,特别庞大的内容甚至会溢出到硬盘上。这也会在 WCF 4.5 中得到修正。

查看英文原文: Lighter Configuration Files and Better ASP.NET Support with WCF 4.5

2012-03-02 17:192024
用户头像

发布了 340 篇内容, 共 120.3 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

【深入理解TcaplusDB技术】单据受理之创建业务指南

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB运维——日常巡检

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

小程序容器技术,加速工业互联网平台建设

Geek_99967b

小程序 工业互联网 小程序容器

详解GPU虚拟化技术

Finovy Cloud

人工智能 云渲染 GPU服务器

【深入理解TcaplusDB技术】TcaplusDB机器如何初始化和上架

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

先睹为快 | 卓越示范中心ETB003云原生安全实验测试床

青藤云安全

容器安全 信通院 云原生安全

【深入理解TcaplusDB技术】TcaplusDB机型管理

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

Charles 工具如何做断点测试

伤心的辣条

Python 程序人生 软件测试 自动化测试 接口测试

【深入理解TcaplusDB技术】TcaplusDB常规单据

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB运维单据

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB运维

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

主数据管理平台功能模型介绍

agileai

Java 数据治理 数据模型 主数据平台 功能模型

【深入理解TcaplusDB技术】TcaplusDB机器如何下架

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

直播场景音频降噪,传统算法 VS AI 算法对比和实践

融云 RongCloud

Vue-9-计算属性的属性

Python研究所

6月月更

详解MOVE PROTOCOL的测试版,让健康运动如影随形

鳄鱼视界

从概念到安全实践:软件供应链基础指南

SEAL软件供应链安全

DevOps 安全 DevSecOps 软件供应链

青藤“基于工业互联网的安全方案”成功入选信通院守卫者计划

青藤云安全

主机安全 互联网安全

详解MOVE PROTOCOL的测试版,让健康运动如影随形

威廉META

改变世界的开发者丨以梦为码,华工小哥的致青春

华为云开发者联盟

数据库 华为云

Elux-从"微前端"到“微模块”

hiisea

前端框架 微前端 微模块 elux

传统企业数字化转型,到底难在哪里?

SoFlu软件机器人

【深入理解TcaplusDB技术】集群管理操作

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】创建游戏区

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB新增机型

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

天人合一物我相融,站点升级渐进式Web应用PWA(Progressive Web Apps)实践

刘悦的技术博客

前端 App 应用 Web JS SDK PWA

2022,云上开发新纪元

Heighliner

云原生 #k8s 开发者, 远程开发

【深入理解TcaplusDB技术】单据受理之建表审批

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

【深入理解TcaplusDB技术】TcaplusDB机型

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

手慢无!‘’阿里爸爸‘’6月最新开源新版Spring Cloud Alibaba全体系10w字全彩笔记

Java全栈架构师

Java 程序员 面试题 架构师 SpringCloud

【深入理解TcaplusDB技术】单据受理之创建游戏区

TcaplusDB

数据库 nosql TcaplusDB 腾讯游戏

WCF 4.5:配置文件更小,对ASP.NET的支持更好_.NET_Jonathan Allen_InfoQ精选文章