Я знаю, что есть как минимум два подхода к использованию файла web.config:
configSource, который был представлен в .NET 2.0 - вот хорошая запись в блоге об этом.file тега appSettings, который позволяет указать на внешний файл с относительным путем. Описано в Документация MSDN по элементу appSettings.Теперь моя проблема в том, что оба подхода работают хорошо только для физических путей. Но мне нужно обратиться к файлу конфигурации, который находится в виртуальный каталог.
Какой другой метод я могу использовать для помещения моих ресурсов конфигурации в виртуальный каталог?
Примечание: я хочу сделать это таким образом, потому что у меня есть несколько экземпляров моего веб-приложения на одном сервере (и на многих серверах). Чтобы развертывание было простым и чистым, я хочу сохранить один каталог для всех файлов (aspx, ascx, images, css, js и т. д.) И указывать на него веб-приложения в IIS для разных клиентов (= домены, https и т. д.) единый каталог. В каждом веб-сайте IIS у меня был бы виртуальный каталог с именем «custom», который указывает на разные папки для каждого веб-сайта.
Обновлять: Я хотел бы отметить, что этот виртуальный каталог «custom» не подходит для хранения унаследованного web.config - этот web.config будет действителен только для настраиваемой папки, которая не содержит файлов aspx / ascx.





Виртуальные каталоги можно настроить как приложения, и вы можете просто поместить туда другой файл web.config.
Он унаследует любые изменения из родительской конфигурации, и вы можете добавлять в нее собственные настройки.
Я хотел сделать то же самое, но это не сработало, поэтому я решил сделать наоборот, поскольку вы знаете, что web.config может быть унаследован, поэтому я указал IIS на папку, содержащую конфигурацию клиента (строка подключения, путь к файлу etc) файлы и файлы веб-сайта, я помещаю их в виртуальный каталог с остальной частью webconfig (где он загружает dll и другие необходимые файлы приложения) Таким образом, в основном я могу использовать файлы веб-сайта для нескольких клиентов и клиентов с их собственной строкой подключения к базе данных и другими конкретными настройками клиента.
У меня такой же сценарий, и после прочтения вашего сообщения я понял, что asp.net не позволит вам сделать это по разным причинам безопасности.
Поэтому я обратился к ОС, чтобы найти эквивалент функции программной ссылки Linux, которая, в свою очередь, привела меня к Утилита Junction от sysinternals. Это может создать каталог, который на самом деле является любым другим каталогом на этом томе, и asp.net не может отличить, и поэтому с радостью загружает разделы конфигурации, которые на самом деле не находятся в подкаталоге вашего веб-сайта. Работает для меня :)
К сожалению, это не вариант, потому что приложение не находится в «пользовательском» виртуальном каталоге. Я обновлю свой вопрос, чтобы прояснить этот момент.