代码之家  ›  专栏  ›  技术社区  ›  Andy May

如何防止web.config中的应用程序设置被继承?

  •  2
  • Andy May  · 技术社区  · 15 年前

    我的ASP.NET 2.0 Web应用程序的web.config中有一个applicationsettings部分。这对于存储值并能够以强类型值的形式访问这些值非常有效。

    以下是我的web.config的一个片段:

    <configuration>
     ... 
     <applicationSettings>
         <MyWebsite.Properties.Settings>
            <setting name="ExcludedItemNumbers" serializeAs="Xml">
               <value>
                  <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                     <string>123</string>
                     <string>124</string>
                  </ArrayOfString>
               </value>
            </setting>
         </MyWebsite.Properties.Settings>
      </applicationSettings>
    </configuration>
    

    但是,我在IIS服务器上的下面有另一个虚拟目录(默认情况下,它继承了这个web.config)。将applicationsettings添加到此web.config后,子虚拟目录将引发一个运行时错误,抱怨web.config不正确(我假设是因为mywebsite.properties.settings不是子站点中的有效类型)。

    如何保持对此网站中设置的强类型访问,而不中断继承此web.config的网站?我试过了 location tag 在applicationsettings标记周围,但这会在该站点上产生运行时错误。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Daniel Pollard    15 年前

    您可以添加 clear element 到您的孩子web.config文件。

    <appSettings file="">
          <settings>
             <clear />
          </settings>
       </appSettings>
    
        2
  •  1
  •   cbp    15 年前

    也可以使用移除元素:

    <appSettings>
          <settings>
             <remove key="someKey" />
             <add key="someKey" value="a new value" />
          </settings>
    </appSettings>