如何防止web.config中的applicationSettings被继承?

时间:2009-05-19 19:11:08

标签: asp.net iis iis-6 asp.net-2.0

我的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的站点?我尝试围绕applicationSettings标记执行location tag,但这会在此站点上产生运行时错误。

2 个答案:

答案 0 :(得分:1)

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

<appSettings file="">
      <settings>
         <clear />
      </settings>
   </appSettings>

答案 1 :(得分:1)

您还可以使用remove元素:

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