Использование атрибута configSource в файле Web.config для ссылки на другой файл, затем повторное использование атрибута configSource

#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. Да, вероятно, есть много разных способов, которыми я мог бы это сделать, но, насколько я понимаю, способ, которым я пытался, должен сработать. Я хотел бы знать, почему этого не произошло. (Мне нужно учитывать, что у клиентов уже есть эти файлы конфигурации в их средах, поэтому я пытаюсь найти для них решение с наименьшим воздействием.)