Совместное использование AppSettings и ConnectionStrings между консолью и веб-приложением
У меня есть многоуровневое приложение ASP.Net MVC 3, в котором разные уровни должны совместно использовать некоторые параметры, и мне интересно, как наилучшим образом добиться этого.
На данный момент все мои AppSettings находятся в файле Web.config, но я просто добавил в свое решение новый проект для создания консольного приложения, которое будет вызываться каждую ночь, чтобы купить планировщик заданий Windows для выполнения рутинных задач обслуживания. Это консольное приложение будет использовать ту же базу данных, уровень хранилища, уровень обслуживания и т. Д., Что и веб-приложение, и оба приложения должны использовать одни и те же параметры настройки по большей части. Я хотел бы избежать дублирования настроек в двух файлах (app.config и web.config).
Кроме того, я хочу, чтобы эти настройки были доступны для сервисного уровня, который находится в отдельном проекте в том же решении.
Я прочитал следующий пост, но я не полностью понимаю решение, и я не уверен, что это лучший способ сделать это.
Совместное использование параметров конфигурации между веб-приложением и консольным приложением
Я также прочитал статью, на которую ссылается этот пост, и не нахожу решение очень элегантным.
Я использую VS 2010 и EF 4.3.1.
2 ответа
Идея в том, что вы можете поместить настройки в общий .config
делиться между всеми вашими проектами в виде ссылки, а не помещать ее во все проекты. Решение изложено в this answer
, Также оформить заказ configSource property on MSDN
если вы не знаете о возможности вывода элементов конфигурации в отдельный файл.
Если вы просто заинтересованы в доступе к AppSettings вашего файла web.config из консольного приложения, это достаточно просто. Единственное настоящее раздражение заключается в том, что, поскольку ваше консольное приложение не будет работать в веб-контексте, вам нужно будет заранее знать, как называется ваш сайт в IIS. Это ваше собственное приложение не должно быть проблемой.
Просто используйте http://msdn.microsoft.com/en-us/library/system.web.configuration.webconfigurationmanager.aspx, чтобы открыть и получить доступ к web.config указанного сайта.