Я создал сервер api, который состоит из трех проектов: Api (проект api), который вызывает BL (библиотека классов), которая вызывает Dal (библиотека классов). Очень стандартный. Он отлично работает на месте. Теперь, когда я публикую его, приложение app.config BL исчезает. Почему? Где я могу сохранить свои настраиваемые параметры? спасибо. TalГде мой файл app.config?
ответ
В своем основном проекте ASP.NET используйте Web.Config
вместо App.Config
, чтобы заставить его работать.
app.config только имя в процессе разработки, как только проект будет построен app.config копируется в .config и это то, что используется приложением при запуске
Приложение asp.net читает конфиг из web.config, поэтому, если у вас есть app.config, это означает, что ваш проект не является веб-проектом, а стандартной библиотекой или исполняемым файлом.
Если это библиотека (.dll), тогда вы должны поместить свою конфигурацию в файл web.config (если библиотека используется asp.net) или в .config, если это стандартный исполняемый файл.
В идеале ваши библиотеки не должны считывать настройки, так как это создает скрытую связь между библиотекой и конфигурационными файлами, и было бы лучше предоставить эти параметры конфигурации для классов, которые в них нуждаются в библиотеке, извне, а затем покидает приложение используя библиотеку, чтобы хранить их там, где это наиболее удобно.
Как потребитель вашей библиотеки узнает, что им нужно добавить SettingX в настройки своего конфигурационного файла? Лучше для библиотеки напрямую запрашивать значение настройки. Поэтому, если ваш DAL нуждается в строке соединения, тогда класс, который хочет строку соединения, должен запросить его в своем конструкторе. Затем приложение, использующее его, может получить его из настроек (или в любом случае) и передать их в библиотеку., И у потребителей есть видимость зависимости от строки подключения. Если библиотека читает его из конфигурации, у потребителя нет способа узнать, что это то, что им нужно добавить к настройкам
Итак, в веб-приложении запуск будет считывать настройки из web.config и передавать их в вашу библиотеку, но некоторые другие приложения, использующие одну и ту же библиотеку, могут хранить их в базе данных, если они этого захотят.
Я вижу, что я не добираюсь до тебя. Проблема в том, что в моей библиотеке классов BL я использую appSetting, чтобы сделать этот параметр настраиваемым. теперь я публикую всю серверную часть, которая является моей частью проекта. BL использует параметры, которые я вставил в Appsettings, но я не могу найти, где их изменить, если это необходимо, и это было в основном при использовании настройки приложения, например, когда я программирую материал, который не является веб-api. – tal
@tal Я понимаю вашу проблему, но, похоже, вы не понимаете, как работает конфигурация в .net. Файл app.config ** никогда не читается ** ничем. Это всего лишь файл времени разработки. Файл, используемый для чтения настроек, основан на имени исполняемой программы по умолчанию (или web.config для программы asp.net), поэтому, если вы не меняете файл конфигурации для использования в коде библиотеки, он будет ищите свои настройки в файле web.config. Я предлагаю вам прочитать, как работает конфиг, а затем перечитать мой ответ, чтобы узнать, имеет ли он смысл. –
Спасибо, я сделаю это. На самом деле я знаю, что это просто то, что я привык к Dll.Config файлы были созданы, и я не мог понять, что заменяет его на веб-проекте. Я получаю это сейчас. Еще раз спасибо, – tal
- 1. Где PresentationTraceSources.Refresh ищет файл app.config?
- 2. Где мой файл журнала?
- 3. где мой java-файл?
- 4. Где мой файл данных?
- 5. Где мой .vimrc-файл?
- 6. Где мой файл MainActivity?
- 7. Где мой файл ресурсов
- 8. Где мой файл pg_dump?
- 9. Где мой файл php.ini?
- 10. Где мой файл SQLite?
- 11. Где мой файл?
- 12. Где мой файл settings.gradle?
- 13. Где находится App.config?
- 14. Wix Не переписывать мой app.config
- 15. Где мой файл dajax? Django
- 16. node.js где мой файл конфигурации?
- 17. Где мой файл Sublime Preferences?
- 18. Где хранится мой текстовый файл?
- 19. Где мой текстовый файл сохранен?
- 20. Dropwizard - Где мой файл YML?
- 21. C# app.config файл
- 22. Encrypting app.config Файл
- 23. Где разместить файл app.config в решении с несколькими проектами-error
- 24. Где находится файл web.config/app.config для служб таймера SharePoint?
- 25. Как вы определяете, где ваш файл app.config должен его прочитать?
- 26. Где я могу найти файл app.config в .NET framework 4.0?
- 27. Как загрузить файл App.config?
- 28. Отсутствует файл app.config?
- 29. Как использовать файл App.config?
- 30. App.config не может найти мой элемент
В MVC вы должны использовать 'web.config' для настраиваемых параметров – Satpal
настраиваемых параметров? Вы имели в виду 'appsettings'? Вы не можете получить appsetting из библиотеки BL и Dal в своем проекте mvc. –