2008-11-08 4 views
3

Я знаю, что там, по крайней мере два подхода к использовать файл web.config:ASP.NET: внешний настраиваемый файл конфигурации в виртуальном каталоге - как?

  • с помощью атрибута configSource, который был введен в .NET 2.0 - here is a good blog entry об этом.
  • Атрибут appSettings file, который позволяет указать внешний файл с относительным путем. Описано в MSDN documentation on the appSettings element.

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

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

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

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

ответ

2

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

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

1

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

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

+0

К сожалению, это не вариант, потому что приложение не находится в «обычном» виртуальном каталоге. Я уточню свой вопрос, чтобы сделать это ясно. – splattne 2008-11-08 17:16:59

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^