При работе с web.config класс конфигурации недоступен

2

Я хочу получить доступ к разделу "appSettings" файла web.config. Согласно MSDN и нескольким другим источникам, следующее должно работать:

System.Configuration.Configuration config = 
    WebConfigurationManager.OpenWebConfiguration("/rootPath");

Я получил эту ошибку во второй конфигурации (System.Configuration. Конфигурация):

Тип или имя пространства имен "Конфигурация" не существует в namespace 'System.Configuration' (есть вам не хватает ссылки на сборку?)

Я получил дополнительную ошибку в системе ( Система. Конфигурация. Конфигурация):

Тип 'System.Configuration.Configuration' определяется в сборке, которая не является ссылки. Вы должны добавить ссылку к сборке 'System.Configuration, Версия = 2.0.0.0, Культура = Нейтральная, PublicKeyToken = b03f5f7f11d50a3a".

Обращаясь к первой ошибке, у меня есть ссылка на System.Configuration. Когда я смотрю в "Обозреватель объектов", он содержит определение класса для "Конфигурация".

Адресация второй ошибки, ссылка предназначена для версии 2.0.50727. Есть версия 2.0.0.0?

Вторая ошибка появилась после удаления и снова добавлена ​​ссылка на System.Configuration. Кроме того, после повторного добавления ссылки он теперь отображается как "System. c onfiguration" в моих ссылках. Обратите внимание на строчку c.

Дополнительные примечания
Вещи, которые я пробовал и не удалось:

  • Удалено и добавлено ссылка на System.Configuration
  • Удалены все ссылки для проекта и добавлены обратно
  • Проверено чистое решение из SVN

Я создал тестовое решение и не имел проблем с доступом к классу в пространстве имен System.Configuration.

Любые идеи о том, что происходит (как я это сделал)? Какие возможности я могу исправить?

  • 0
    Что касается 2.0.0.0 и 2.0.50727, то это одно и то же. Каждая сборка в .NET обычно имеет две версии: версию сборки и версию файла. Версия сборки 2.0.0.0 и версия файла 2.0.50727.
  • 2
    Относительно самой проблемы: где находится код, который вы пытаетесь написать? Это в файле ASPX? В файле CS? Если да, в какой папке находится файл? В проекте веб-приложения есть два набора ссылок, в зависимости от того, над каким файлом вы работаете и где он находится.
Показать ещё 2 комментария
Теги:
namespaces
asp.net-mvc
web-config

2 ответа

2
Лучший ответ

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

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

  • 0
    Что ж, я подниму руку и признаюсь, что я был одним из тех «других дураков». :-) Спасибо, что не удалили вопрос.
1

Попробуйте удалить эти ссылки на System.Configuration и сделайте это с нуля: добавьте version=2.0.0.0 (для runtime версия v2.0.50727). Затем, чтобы прочитать ваш appSetting, вы могли бы просто написать это:

string value = System.Configuration.ConfigurationManager.AppSettings["yourKey"];
  • 0
    Да, но мне любопытно, почему он ищет эту версию. Папка My Framework не содержит версию 2.0, а только 1.0.3705, 1.1, 2.0.50727, 3.0 и 3.5. Так что мне придется скачать с MSDN. Это кажется нетипичным шагом, как будто что-то напутало с моими ссылками.
  • 0
    Это первое, что я попробовал. Когда я добавил его обратно, он отображался в нижнем регистре c: «System.configuration» и отображал вторую упомянутую ошибку.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню