ASP.NET: внешний настраиваемый файл конфигурации в виртуальном каталоге - как?

Я знаю, что есть как минимум два подхода к использованию файла web.config:

Моя проблема в том, что оба подхода хорошо работают только для физических путей. Но мне нужно обратиться к конфигурационному файлу, который находится в виртуальном каталоге.

Какой другой метод я могу использовать для помещения моих ресурсов конфигурации в виртуальный каталог?

Примечание: я хочу сделать это таким образом, потому что у меня есть несколько экземпляров моего веб-приложения на одном сервере (и на многих серверах). Чтобы развертывание было простым и чистым, я хочу сохранить один каталог для всех файлов (aspx, ascx, images, css, js и т. Д.) И указывать на него веб-приложения в IIS для разных клиентов (= домены, https и т. Д.) единый каталог. В каждом веб-сайте IIS у меня был бы виртуальный каталог под названием «custom», который указывает на разные папки для каждого веб-сайта.

Обновление: я хотел бы отметить, что этот виртуальный каталог «custom» не подходит для хранения унаследованного web.config - этот web.config будет действителен только для настраиваемой папки, которая не содержат файлы aspx / ascx.


person splattne    schedule 08.11.2008    source источник


Ответы (3)


У меня такой же сценарий, и после прочтения вашего сообщения я понял, что asp.net не позволит вам сделать это по разным причинам безопасности.

Поэтому я обратился к ОС, чтобы найти эквивалент функции мягкой ссылки Linux, которая, в свою очередь, привела меня к Junction utility от sysinternals. Это может создать каталог, который на самом деле является любым другим каталогом на этом томе, и asp.net не может отличить друг от друга и поэтому с радостью загружает разделы конфигурации, которые на самом деле не находятся в подкаталоге вашего веб-сайта. Работает на меня :)

person Keith K    schedule 04.11.2010

Виртуальные каталоги можно настроить как приложения, и вы можете просто поместить туда другой файл web.config.

Он унаследует любые изменения из родительской конфигурации, и вы можете добавлять в нее собственные настройки.

person FlySwat    schedule 08.11.2008
comment
К сожалению, это не вариант, потому что приложение не находится в пользовательском виртуальном каталоге. Я обновлю свой вопрос, чтобы прояснить этот момент. - person splattne; 08.11.2008

Я хотел сделать то же самое, но это не сработало, поэтому я решил сделать наоборот, поскольку вы знаете, что файл web.config может быть унаследован, поэтому я указал IIS на папку, содержащую конфигурацию клиента (строка подключения, путь к файлу etc) файлы и файлы веб-сайта, я помещаю их в виртуальный каталог с остальной частью webconfig (где он загружает dll и другие необходимые файлы приложений) .Так что в основном я могу использовать файлы веб-сайта для нескольких клиентов и клиентов с их собственным подключением к базе данных строка и другие специфические настройки клиента.

person Community    schedule 25.02.2009