#asp.net #.net #web-config #configsource
Вопрос:
В нашем файле web.config есть этот раздел:
lt;connectionStrings configSource="connections.config" /gt;
Наш файл connections.config выглядит (что-то) примерно так:
lt;connectionStringsgt; lt;add name="conn" connectionString="Data Source=source;Initial Catalog=db;Trusted_connection=True" /gt; lt;/connectionStringsgt;
Я думаю, что причина, по которой мы делаем это, заключается в том, чтобы облегчить нашим клиентам изменение конфигурации базы данных. Но это означает, что connections.config
он проверяется в системе управления версиями, и как разработчик, я должен менять его каждый раз, когда я разрабатываю, и не забывайте проверять эти изменения.
В результате я хотел бы configSource
снова использовать этот атрибут в connections.config, что-то вроде этого:
lt;connectionStrings configSource="connections.local.config"gt; lt;add name="conn" connectionString="Data Source=source;Initial Catalog=db;Trusted_connection=True" /gt; lt;/connectionStringsgt;
Но когда я это делаю, я получаю ошибку:
Сообщение об ошибке синтаксического анализатора: Непризнанный атрибут «configSource». Обратите внимание, что имена атрибутов чувствительны к регистру.
Неужели это невозможно сделать? Кажется странным, что атрибут configSource будет работать только в самом файле web.config.
Комментарии:
1. Вы знаете, что вам не нужно получать строки подключения из файла web.config. Вы можете хранить их в любом удобном для вас месте, которое отвечает вашим требованиям безопасности и devops. Например, вы можете создать файл ConnectionStrings.json и прочитать их оттуда.
2. Да, вероятно, есть много разных способов, которыми я мог бы это сделать, но, насколько я понимаю, способ, которым я пытался, должен сработать. Я хотел бы знать, почему этого не произошло. (Мне нужно учитывать, что у клиентов уже есть эти файлы конфигурации в их средах, поэтому я пытаюсь найти для них решение с наименьшим воздействием.)