system.webServer 在 web.config 中的位置

The*_*dge 5 asp.net iis

我正在努力为 ASP.NET 4.51 WebForms 项目寻找 web.config 的权威架构指南。使用各种网络配置,我看到以下两个,我想知道两者都是正确的,或者确切的区别是什么。

是 system.webServer 的父节点配置,如:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <system.webServer>
   </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

或者它也可以在位置标签中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <location>
      <system.webServer>
      </system.webServer>
   </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

Juz*_*ott 3

位置元素将指站点的特定部分,例如管理位置或其他内容。

例如,以下 web.config 示例将元素中的任何设置<system.webServer>仅应用于位于站点 /admin 目录中的任何资源:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <location path="~/admin">
        <system.webServer>
            <security>
                <authentication mode="Forms">
                    <forms name=".ASPXFORMS" loginUrl="/admin/logon.aspx" protection="All" path="/admin" timeout="30" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

对于应用程序范围的<system.webServer>设置,提供的第一个示例(不带位置元素)是可行的方法。