ASP.NET: внешний пользовательский файл конфигурации в виртуальном каталоге - как? - PullRequest
3 голосов
/ 08 ноября 2008

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

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

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

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

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

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

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

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

1 голос
/ 25 февраля 2009

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

1 голос
/ 08 ноября 2008

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

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

...