Я просто унаследовал очень старое веб-приложение ASP.NET 2.0.web.config с app.config в .dll
В приложении у него есть проекты библиотеки классов поддержки SEVERAL. В библиотеке классов DataAccess представлен файл app.config (и файл settings.settings) с строкой соединения с именем ConnString1.
Я всегда думал, что .DLL не может иметь файл app.config/settings.settings (или, по крайней мере, вы можете включить их, но они не будут использоваться), так что это меня путает.
В web.config также есть строка соединения с именем ConnString1 с теми же учетными данными для входа в систему, но с другим именем сервера.
Когда я запускаю приложение из Visual Studio DEBUG, он использует строку подключения, которая находится в файле app.config/settings, а не тот, который определен в файле web.config/machine.config.
Я думал. DLLs не будут этого делать, но вместо этого используйте web.config?
Однако, когда я нажал это приложение в режиме RELEASE на наш производственный сервер (на тестовом сайте), он, похоже, использует правильную строку соединения в web.config.
Может ли это объяснить это?
Рад, что вы нашли его. Ваш следующий шаг должен состоять в том, чтобы провести встречу с различными вовлеченными людьми и объяснить им, что строки соединений НЕ принадлежат к конфигурационным файлам машины или среды. – NotMe
Я не думаю, что это правда. Ввод строки соединения в machine.config означает, что вы можете рекламировать свое приложение (и его конфигурационный файл) из dev -> test -> production без необходимости вручную изменять конфигурацию на каждом шаге. – Jason
Исправить. Мы находимся в среде, где у нас есть 20 разных сайтов. Все они используют одну и ту же строку соединения из-за шифрования на уровне столбцов (только один вход разрешен для шифрования/дешифрования столбца на уровне базы данных). Легче поставить эту строку соединения в machine.config, затем необходимо ежеквартально менять ее в web.config (что требуется нашими стандартами безопасности). – Sean