Как я могу предотвратить наследование applicationSettings в web.config? - PullRequest
2 голосов
/ 19 мая 2009

У меня есть раздел applicationSettings в моем web.config в моем веб-приложении ASP.NET 2.0. Это прекрасно работает для хранения значений и возможности доступа к ним как к строго типизированным значениям.

Вот фрагмент моего 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 вокруг тега applicationSettings, но это дает ошибку времени выполнения на этом сайте.

Ответы [ 2 ]

1 голос
/ 27 мая 2009

Вы также можете использовать элемент удаления:

<appSettings>
      <settings>
         <remove key="someKey" />
         <add key="someKey" value="a new value" />
      </settings>
</appSettings>
1 голос
/ 24 мая 2009

Вы можете добавить элемент clear в ваш дочерний файл web.config.

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