Наследование конфигурации ASP.NET - PullRequest
0 голосов
/ 03 мая 2010

У меня есть приложение ASP.NET, которое определяет пользовательский раздел конфигурации в web.config.

Недавно у меня был заказчик, который хотел развернуть два экземпляра приложения (для тестирования в дополнение к существующему производственному приложению).

Конфигурация, выбранная клиентом, была:

  • foo.com - производственное приложение
  • foo.com / Тестирование - тестовое приложение

В этом случае механизм конфигурации ASP.NET решил применить настройки по адресу foo.com/web.config к foo.com/Testing/web.config.

.

К счастью, это вызвало ошибку конфигурации, поскольку раздел был переопределен на втором уровне, а не создавалось ложное впечатление, что два веб-приложения были изолированы.

То, что я хотел бы сделать, это указать, что мой раздел конфигурации не наследуется и должен быть переопределен для любого веб-приложения, которому это требуется, но я не смог найти способ сделать это.

Мой web.config заканчивается примерно так

<configuration>
  <configSections>
    <section name="MyApp" type="MyApp.ConfigurationSection"/>
  </configSections>
  <MyApp setting="value" />
    <NestedSettingCollection>
      <Item key="SomeKey" value="SomeValue" />
      <Item key="SomeOtherKey" value="SomeOtherValue" />
    </NestedSettingCollection>
  </MyApp>
</configuration>

Ответы [ 2 ]

1 голос
/ 03 мая 2010

Вы пробовали использовать элемент location? Не уверен, что это работает, но стоит попробовать. Поместите это в web.config проекта Testing и попробуйте.

  <location path="." inheritInChildApplications="false">
    <MyApp setting="value" /> 
    ...
    </MyApp>    
  </location>

Две ссылки, которые говорят об использовании элемента location

http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-child-applications-in-subfolders-in-asp-net.aspx

http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx

0 голосов
/ 03 мая 2010

В файле web.config в / testing, сделайте следующее:

<configuration> 
  <configSections> 
    <remove name="MyApp"/> <===========
    <section name="MyApp" type="MyApp.ConfigurationSection"/> 
  </configSections> 
  <MyApp setting="value" /> 
    <NestedSettingCollection> 
      <Item key="SomeKey" value="SomeValue" /> 
      <Item key="SomeOtherKey" value="SomeOtherValue" /> 
    </NestedSettingCollection> 
  </MyApp> 
</configuration> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...