【问题标题】:Why do web.config override MetaBase.xml?为什么 web.config 会覆盖 MetaBase.xml?
【发布时间】:2009-08-26 07:17:05
【问题描述】:

这可能是一个边缘服务器故障问题,但在这里。

我有一个 IIS 6,其中 MetBase.xml 中的 AspMaxRequestEntityAllowed="204800" 表明上传文件限制为 200kb,而 web.config 中的 <httpRuntime maxRequestLength="20192"/> 允许上传 20mb - 后者是应用程序允许的。

为什么 web.config 会覆盖 MetaBase.xml?对我来说,这似乎是等级制度的错误。我在哪里可以找到一个“集中参数”来为服务器所在的整个机器配置最大限制,以防万一我不希望某些 web.config mishapp 允许上传千兆字节?

【问题讨论】:

    标签: asp.net iis web-config


    【解决方案1】:

    Web.config 文件是最后一点的配置管理器,其中的条目将覆盖更高层中的任何条目。

    即machine.config 文件中所做的任何设置(适用于所有网站)都将被 web.config 覆盖(仅适用于该网站)。

    事实上,您可以为每个文件夹拥有单独的 web.config 文件,这将覆盖您的根级别 web.config。

    这就是你所知道的层次结构的工作方式。

    【讨论】:

    • “这就是你所知道的层次结构的工作方式。”如果您从通过服务器访问 webapp 的角度来看,则不会,因此服务器配置应该规定允许底层应用程序执行的操作。如果我是一名服务器技术人员,不希望在特定服务器上进行大量上传,那么如果任何 'ol 开发人员可以在 app-config 中覆盖我的服务器设置,我会很高兴。但也许这只是我。在我看来,服务器设置会覆盖应用程序设置。我想我错了。但我确实看到了这两种情况的优点。
    • 我将此标记为正确答案,但我必须研究 Microsoft 配置继承。 :)
    • 好吧,当您是网站所有者时,如果您的网站的一部分由于未在 machine.config 中设置相关权限而无法正常工作,您会很生气。另请记住,这仅对逻辑上可修改的设置有效,例如:网站所有者不能更改他不拥有的文件夹的文件夹权限,只能更改他有权更改的文件夹权限。
    【解决方案2】:

    我不知道 MetaBase.xml,但在您的机器中,文件夹中有默认配置

    c:\Windows\Microsoft.Net\Frameworks\VERSION\Config

    很抱歉,确切的名称可能略有不同,但您会很容易理解,在这里您会找到几个不同的 web.*.config 文件,您可以在每个文件中进行配置,并且有一种方法可以禁止这样做要在较低级别更改属性,但我不知道该怎么做。

    阅读httpRuntime 的 MS 文档说,ASP.NET 本身将最大限制设置为 4MB。我将尝试在他们的 web.config 中找到如何阻止较低级别修改此元素。

    【讨论】:

    • 我在某处读到限制也是 4 MB - 事实上我也经历过。但是在我提到的 webapp 中,它显然被覆盖了,因为允许使用更大的文件。我没有写过webapp,所以我不熟悉它的细节。
    • 是的,但也有一些方法可以防止最低点 web.config 进行任何可以在 machine.config 上定义的更改
    猜你喜欢
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    相关资源
    最近更新 更多