Чтение раздела конфигурации Не удалось - PullRequest
2 голосов
/ 15 декабря 2010

У меня проблема с некоторым приложением.Когда я выполняю его на локальном диске, все в порядке, но когда я пытаюсь выполнить то же приложение из общего ресурса (Z: \ resource \ TheApplication.exe), я получаю следующую ошибку:

Error occurred creating the configuration section handler for DOMAIN/DomainUserInfo: Request failed

ошибка возникает при попытке прочитать пользовательский раздел в файле конфигурации :

public static class AppConfigFile {
    public static IDomainUserInfo DomainUserInfo {
        get {
            if (_domainUserInfo == null) {
                _domainUserInfo = (DomainUserInfo)ConfigurationManager.GetSection(Environment.UserDomainName + @"/DomainUserInfo");         
            } return _domainUserInfo as IDomainUserInfo;
        }
    }
}
public class DomainUserInfo : ConfigurationSection, IDomainUserInfo {
    [ConfigurationProperty("SomeConfiguration", IsRequired = true, DefaultValue = "")]
    public string SomeConfiguration { get { return (string)base["SomeConfiguration"]; } }    

    [ConfigurationProperty("OtherConfiguration", IsRequired = true, DefaultValue = "")]
    public string OtherConfiguration { get { return (string)base["OtherConfiguration"]; } }    
}

Файл конфигурации выглядит следующим образом:

<configuration>
  <configSections>
    <sectionGroup name="THE_DOMAIN" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="DomainUserInfo" type="NameSpace.Other.DomainUserInfo,NameSpace.Other" requirePermission="false"/>
    </sectionGroup>
  </configSections>

    <THE_DOMAIN>
        <DomainUserInfo SomeConfiguration="SomeValue" OtherConfiguration="OtherValue"></DomainUserInfo>
    </THE_DOMAIN>
</configuration>

Есть идеи?

Спасибо.

Ответы [ 2 ]

7 голосов
/ 28 января 2012

Описанная вами проблема вызвана ошибкой в настройках приложения .NET 4.0.

Редактировать

Ссылка на ошибку больше не доступна приблизительно с момента выпуска Visual Studio 2012 из-за изменения дизайна Microsoft Connect веб-сайта. Мне больше не удалось найти дефект на новом Microsoft Connect и не помню его номер.

Единственное, что мне удалось найти, это то, что ссылка на эту ошибку все еще остается в Google кэше.

Bug's entry in Google's cache

Как обойти это помогло мне открыть Конфигурация приложения с кодом:

configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

и затем прочитайте пользовательский раздел со следующим кодом:

CustomSection1 customSection1 = (CustomSection1)configuration.GetSection("CustomSection1");

Примечание: Обход был найден мной в ответе на аналогичный вопрос.

1 голос
/ 15 декабря 2010

Вы не объявили OtherConfiguration в своем классе.Следовательно, вы не можете использовать его в качестве атрибута для DomainUserInfo в вашей конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...