为什么有2个web.config文件

leo*_*ora 28 asp.net asp.net-mvc web-config

有人通过链接发送我下载示例标准asp.net MVC示例,我注意到有2个web.config文件:

  1. 根目录中的1
  2. 1在views目录中

这是什么原因?

Rex*_*x M 39

Views目录中的web.config只有一个重要条目,它阻止了直接访问:

<add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
Run Code Online (Sandbox Code Playgroud)

这是因为有人无法手动尝试转到http://www.yoursite.com/views/main/index.aspx并加载MVC管道之外的页面.


Eri*_*ric 12

Silky说,除了重写之外.

在ASP .NET中,配置文件基本上存在继承风格.你在.net framework文件夹中有一个machine.config,它对机器上的所有应用程序都有基本设置.您在具有相同标记的根web.config中指定的任何内容都将覆盖machine.config中的内容.
子文件夹中的任何web.config都可以覆盖或添加该子文件夹及其子文件夹中的其他设置.

我的新程序员第一次在根文件夹中放入一个http处理程序,然后它下面的虚拟目录中的所有应用程序都爆炸,因为它们没有DLL(它们应该放置http),这对我来说总是很有趣.处理程序语句仅在需要它的应用程序中,而不是在根目录中.:)


San*_*San 6

/Views/Web.config

这不是应用程序的主要web.config文件.它只包含一个指令,指示Web服务器不要在/ Views下提供任何*.aspx文件(因为它们应该由控制器呈现,而不是像经典WebForms*.aspx文件那样直接调用).此文件还包含使标准ASP.NET ASPX页面编译器与ASP.NET MVC视图模板语法一起正常工作所需的配置.

/Web.config

这定义了您的应用程序配置

这是来自Pro ASP.NET MVC Framework的书