0

У меня есть код запуска в моем проекте веб-API, который пытается прочитать значения из файла web.config, который по умолчанию публикуется внутри каталога bin. Поскольку точкой инициализации приложения является Global.asax, на этом уровне нет web.config, поэтому мне нужно выяснить, как ссылаться на нее в папке bin.Чтение файла web.config от Global.asax

Вот корень моего каталога IIS:

Root directory of WebAPI project bound in IIS.

В любое время я пытаюсь прочитать значения из файла web.config с помощью ConfigurationManager.AppSettings они возвращаются нуль. Только когда я перемещаю файл web.config из папки bin и в корневой каталог будут найдены значения.

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

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     // Fix web.config location 
     var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin\\web.config"); 
     AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", path); 

     var appId = ConfigurationManager.AppSettings["ApplicationId"]; 
    } 
} 

Есть способ заставить путь к web.config жить внутри папки bin?

ответ

2

Во-первых, я не понимаю, почему вы храните свой файл web.config в папке bin. Путь по умолчанию файла web.config - это всегда та же самая папка, что и global.asax, т. Е. Корневая директория приложения. Я работал в ASP.NET, ASP.NET WebAPI и ASP.NET MVC-приложениях, и все они поддерживают web.config в той же папке, что и Global.asax.

Есть ли что-то, что вы потеряете, если вы переместите файл web.config из каталога bin так же, как global.asax?

Кроме того, если это строка соединения, которую вы хотите прочитать (как я могу получить из вашего вопроса previous), вы можете сделать ниже и поместить свои настройки подключения в этот каталог web.config из каталога bin.

<connectionStrings configSource="bin\connection.config"/> 

Подробнее о файлах конфигурации вы можете найти в статье this.

Смежные вопросы