码迷,mamicode.com
首页 > Web开发 > 详细

ASP.NET MVC 的一个配置节点

时间:2016-04-24 11:04:18      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 
环境: IIS 7.5,IIS 集成模式, VS 2012,Chrome.
    用VS新建一个MVC4项目时,会在根目录下的web.config和view 目录下的web.config文件里自动添加<add key="webpages:Enabled" value="false" />这样一个节点。
    这表示什么意思,从字面上很难看出来。于是google了一把。大概意思是说禁止你直接访问view目录下面的.cshtml和.vbhtml这样的文件(比如通过浏览器输入URL访问)。否则会给出“This type of page is not served.”这样的错误提示。于是开始试验,通过浏览器直接访问view里面的Index.cshtml文件。给出的错误提示却是“The resource cannot be found.”用Chrome打开网络监视是一个404的错误。
    虽然结果都是不能直接访问文件,但现象和网上描述的完全不一样。于是在view目录下面添加一个html页面直接访问。给出的也是“The resource cannot be found.”这样的错误,于是猜想是不是MVC默认情况下直接禁止访问view目录下的文件。
这时候突然想到前段时间用HttpForbiddenHandler来处理直接访问一些文件,如Excel文件。给出的错误提示也是“The resource cannot be found”。于是猜想.cshtml是不是也被类似的handler给处理了,果然在view目录下面的web.config里面发现这样的节点:<handlers> <remove name="BlockViewHandler"/> <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> </handlers>(此配置是针对IIS 7.5集成模式的配置,另外一个类似的配置是针对的经典模式或者低版本的IIS)。注释掉该节点,直接浏览Index.cshtml,出现的错误提示果然是“This type of page is not served.”这是一个403的错误。
    

ASP.NET MVC 的一个配置节点

标签:

原文地址:http://www.cnblogs.com/cd57/p/5426394.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!