为什么有2个web.config文件

时间:2009-08-31 00:46:44

标签: asp.net asp.net-mvc web-config

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

    根目录中的
  1. 1
  2. 1在views目录中
  3. 这是什么原因?

4 个答案:

答案 0 :(得分:39)

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

<add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>

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

答案 1 :(得分:12)

Silky说,除了重写。

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

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

答案 2 :(得分:6)

/Views/Web.config

这不是您的应用程序的主要内容 web.config文件。它只包含一个 指令指示Web服务器 不要提供任何* .aspx文件 / Views(因为它们应该是 由控制器呈现,未调用 直接像经典的WebForms * .aspx 文件)。该文件还包含配置 需要制定标准 ASP.NET ASPX页面编译工作 适当的ASP.NET MVC视图 模板语法。

/Web.config

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

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

答案 3 :(得分:4)

您可以使用多个web.configs为该文件夹定义不同的设置。用于权限和其他此类事情。