web.config может читать из внешнего XML-файла?

Я должен копировать некоторые настройки (как строка подключения) между web.config файлом, что WCF размещает использование и web.config файл, который использует веб-клиент.

В интересах не дублирования у меня могут быть оба web.configs, считанный из отдельного XML-файла? Два web.configs могут быть полностью в различных решениях/проектах, таким образом, я предполагаю, что это не возможно, но требуемое для получения мнения других.

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

18
задан DotnetDude 9 March 2010 в 17:43
поделиться

4 ответа

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

У вас будет что-то вроде этого в вашем web.config:

<configuration>
   <appSettings configSource="appSettings.config" />   
   <connectionStrings configSource="connectionStrings.config" />
   <system.web>    
      <pages configSource="pages.config" />
      <httpHandlers configSource="httphandlers.config">
   </system.web>    
</configuration>

Внешние конфигурации будут содержать только один подраздел в них:

httphandlers.config:

<httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>

Обратите внимание, что вы не можете экспортировать весь Часть , поскольку это группа разделов конфигурации , а не раздел конфигурации, но вы можете перенести большинство подразделов, содержащихся в system.web, во внешний вид.

19
ответ дан 30 November 2019 в 07:49
поделиться

вы можете указать свои строки подключения вне вашего web.config http://blog.andreloker.de/post/2008/06/Keep-your-config-clean-with-external- config-files.aspx , но он должен находиться в том же каталоге.

1
ответ дан 30 November 2019 в 07:49
поделиться

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

Вот пример моих настроек конфигурации:

<connectionStrings configSource="web\config\connectionStrings.config" />
<appSettings configSource="web\config\appSettings.config" />
<system.diagnostics configSource="web\config\diagnostics.config" />
<system.serviceModel>
    <bindings configSource="web\config\serviceModelBindings.config" />
    <behaviors configSource="web\config\serviceModelBehaviors.config" />
    <services configSource="web\config\serviceModelServices.config" />
    <client configSource="web\config\serviceModelClient.config" />
</system.serviceModel>

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

11
ответ дан 30 November 2019 в 07:49
поделиться

если можете, просто поместите общие конфигурации в Machine.Config. Они оба могут читать оттуда, и каждый файл web.config может переопределять любые нужные вам значения.

Я говорю, если можете, потому что я знаю, что многие хостинговые компании не позволят вам изменить его, если вы не арендуете выделенный сервер.

1
ответ дан 30 November 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: