2009-05-19 58 views
2

我在我的ASP.NET 2.0 web應用程序的web.config中有一個applicationSettings節。這適用於存儲值並能夠以強類型值訪問它們。如何防止web.config中的applicationSetting被繼承?

這裏是我的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,但在此網站上給出了運行時錯誤。

+1

你試過有不同的應用程序池子虛擬目錄下運行?你有沒有嘗試添加一個web.config到子虛擬目錄? – Jeff 2009-05-20 23:50:30

回答

1

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

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

您還可以使用remove元素:

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