代码改变世界

你可能不知道的秘密:ASP.NET 4.0悄悄添加的扩展名映射

2010-10-01 14:49  Nana's Lich  阅读(3359)  评论(4编辑  收藏  举报

前两天我在研究利用ASP.NET默认映射来做些奇怪的事情的时候,发现我的IIS里面配置了这样的几个映射:

稍微敏锐一点的人应该会知道,这些扩展名是ASP.NET正在开发中的Razor视图引擎的专用扩展名。

不过我记得我并没有安装过什么可以让IIS支持Razor的东西,IIS Express的配置也是独立于IIS的,问了别人之后发现也在不知道什么时候多了这些扩展名映射……

接着调查.NET框架4.0的根web.config发现了这些东西:

            
<add path="*.aspq" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
<add path="*.cshtm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
<add path="*.cshtml" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
<add path="*.vbhtm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>
<add path="*.vbhtml" verb="*" type="System.Web.HttpForbiddenHandler" validate="True"/>

但是Razor是在7月初公布的,而.NET框架4.0的正式版则是4月份就出了……

看来在.NET框架4.0正式版发布的时候就已经有Razor引擎的开发计划了,而微软似乎考虑到有很多人可能做不好“增加新的扩展名映射”这种事情,就先把映射先悄悄加上,为Razor的发布作准备。

这样的话,安装了.NET框架4.0的服务器在不需要特意修改IIS设置的情况下就可以正常运行使用了Razor视图引擎的ASP.NET程序了。

对于使用虚拟主机的人来说,也不需要担心IIS配置不正确导致Razor引擎不能正常使用。

 

不过,那个*.aspq的映射是干什么用的?如果谁知道的话,请告诉我一下,多谢!