Вот как я думаю о файле * .config. Скажем, у вас есть метод в вашем DAL:
DoSomething (connectString, SqlDialect, businessObject)
Поскольку connectString и SqlDialect не меняются при каждом вызове этого метода, было бы неплохо иметь возможность удалить эти параметры и получить их другими способами.
По этой причине существуют файлы * .config - они не только специфичны для конкретной среды, но и для приложения. Это значит, что ваше веб-приложение может сказать «Привет всем, connectString =" ... »и SqlDialect =" ... "для каждого вызова метода, пока я не скажу иначе."
Допустим, вы хотите, чтобы одно приложение входило в SQL с одним набором учетных данных, а другое - с другим набором учетных данных (при необходимости с другими разрешениями), чтобы администратор БД мог отслеживать, какое приложение что делает (если он / она так выбирает). Ну, * .config файлы делают это.
Именно поэтому приложение, которое вы запускаете, предоставляет файл * .config. Так что просто вырежьте все содержимое из файла app.config вашего DAL и вставьте его в файл Web.config, затем удалите App.config. После этого вы должны быть готовы.