Хобрук: Ваш путь к мастерству в программировании

Приложение ASP.NET только частично читает внешнюю конфигурацию

У меня есть веб-приложение ASP.NET, и я пытаюсь сослаться на внешнюю конфигурацию (используя конфигурацию блоков корпоративных приложений) для некоторой конфигурации, но она не совсем работает.

Раньше у меня была вся информация о конфигурации в файле web.config (и она работала), но мы хотим поделиться частью этой информации о конфигурации между несколькими приложениями. Когда я помещаю тег configurationSource в файл web.config и читаю конфигурацию через объект WebConfigurationManager, он загружает некоторую информацию о внешней конфигурации (ведение журнала), но не строки подключения и не созданный мной пользовательский раздел. Итак, он читает его (логирование работает), но некоторые точки не соединяются, и мои строки подключения не проходят.

Опять же, это работало, когда все это было в web.config. Я использую .NET 3.5.

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

[Код для доступа к web.config]

Configuration webConfig =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
ConnectionStringSettingsCollection connectionStrings =
    System.Web.Configuration.WebConfigurationManager.ConnectionStrings;

[веб-конфиг]

<configuration>
  <configSections>
    <section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=74025d8738dfe4ce" />
    <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
          <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>
  <enterpriseLibrary.ConfigurationSource selectedSource="File Configuration Source">
    <sources>
      <add name="File Configuration Source" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=74025d8738dfe4ce"
           filePath="C:\MSEAB\MSEAB.config" />
    </sources>
  </enterpriseLibrary.ConfigurationSource>
  ...
  ...
</configuration>

[внешний файл MSEAB.config]

<configuration>
  <configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=74025d8738dfe4ce" />
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=74025d8738dfe4ce" />
    <sectionGroup name="customSectionGroup">
      <section name="customSection" type="app.CustomSection" allowLocation="true" allowDefinition="Everywhere" />
    </sectionGroup>
  </configSections>
  <loggingConfiguration name="Logging Application Block" tracingEnabled="true"
        defaultCategory="General" logWarningsWhenNoCategoriesMatch="true">
    ...
  </loggingConfiguration>

  <connectionStrings>
    <clear />
    <add name="DB.DEV" connectionString="User ID=user;Password=pwd;Data Source=DV1;" providerName="Oracle.DataAccess.Client"/>
    <add name="DB.TEST" connectionString="User ID=user;Password=pwd;Data Source=TS1;" providerName="Oracle.DataAccess.Client"/>
    ...
  </connectionStrings>
  <customSectionGroup>
    <customSection notificationemail="[email protected]" dirPath="C:\Dir" initialrowlimit="500" maxrowlimit="1500" adminadgroup="_admins">
    </customSection>
  </customSectionGroup>
</configuration>

  • Извини, Трент, я не хотел испортить твое последнее редактирование. Я просто пытался разбить текст на несколько абзацев. 27.05.2010

Ответы:


1

Правильно ли сформирован Xml конфигурации? На днях я столкнулся с проблемой в разделе конфигурации Wcf, из-за которой я не закрыл тег должным образом, но не было никаких очевидных ошибок, кроме того, что службы не отвечали.

Рассматривали ли вы возможность использования собственного внешнего поведения свойства System.Configuration.SectionInformation.ConfigSource? Его использование следующее:

<pages configSource="pages.config"/>

Дополнительную информацию см. в разделе SectionInformation.ConfigSource. Информация.

Следует отметить, что из соображений безопасности поддерживаются только относительные пути. Да, и его можно применить только к ConfigurationSection, а не к ConfigurationElement.

20.07.2010
Новые материалы

Введение в контекст React
В этом посте мы поговорим о Context API, который был представлен в React 16, и о том, как вы можете их использовать. Что такое контекст? Глядя на определение из react docs , оно..

Шлюз с лицензией OSS, совместимый с Apollo Federation v2, появится в WunderGraph
Сегодня мы рады сообщить, что мы сотрудничаем с поддерживаемой YC Tailor Technologies, Inc. для внедрения Apollo Federation v2. Реализация будет лицензирована MIT (Engine) и Apache 2.0..

Это оно
Ну, я официально уволился с работы! На этой неделе я буду лихорадочно выполнять последние требования Думающего , чтобы я мог сосредоточиться на поиске работы. Что именно это значит?..

7 полезных библиотек JavaScript, которые вы должны использовать в своем следующем проекте
Усильте свою разработку JavaScript Есть поговорка «Не нужно изобретать велосипед». Библиотеки — лучший тому пример. Это поможет вам написать сложные и трудоемкие функции простым способом...

Базовое руководство по переносу концепций обучения в глубокое обучение
Обзор По мере того, как машинное обучение становится все более мощным и продвинутым, модели, обеспечивающие эту расширенную возможность, становятся все больше и начинают требовать огромного..

C в C.R.U.D с использованием React-Redux
Если вы использовали React, возможно, вы знакомы с головной болью, связанной с обратным потоком данных. Передача состояния реквизитам от родительских компонентов к дочерним компонентам может..

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