代码改变世界

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

  Nana's Lich  阅读(3359)  评论(4编辑  收藏  举报

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

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

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

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

1
2
3
4
5
<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的映射是干什么用的?如果谁知道的话,请告诉我一下,多谢!

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示