Можно ли полностью отменить "более высокий" web.config в подпапке? - PullRequest
11 голосов
/ 24 апреля 2009

Можно ли полностью отменить web.config в подпапке?

Очевидно, у меня есть web.config в корне.

Если у меня есть подпапка с именем «MyApp», могу ли я написать там код и запустить его без какой-либо ссылки на web.config в корневом каталоге? Он будет иметь свой собственный web.config и даже не будет ссылаться на «более высокий» web.config в корне.

Я ищу полную изоляцию приложения. Я хотел бы иметь возможность написать приложение в подпапке существующего сайта, которая игнорирует всю иерархию web.config над ним - приложение будет островком для себя.

Я знаю, что могу использовать элемент "clear", но так ли это лучше? Просто поставить «очистить» под каждым элементом верхнего уровня? Просто интересно, есть ли другой способ.

Дубликат Будет ли дочернее приложение наследоваться от своего родительского web.config?

Ответы [ 5 ]

9 голосов
/ 02 мая 2009

В файле web.config в корневом каталоге оберните элемент <system.web> следующим элементом: <location path="." inheritInChildApplications="false"></location>

Проверьте эту ссылку для справки:

http://www.jaylee.org/post/2008/03/Prevent-ASPNET-webconfig-inheritance-and-inheritInChildApplications-attribute.aspx

1 голос
/ 24 апреля 2009

Да, вы должны очистить те секции, которые хотите переопределить. Думая об этом немного больше, это имеет смысл, так как единственный способ очистить все может очень трудно решить, что очистить это. Обычно Clear сбрасывает все, включая корневой web.configs в web.configs и machine.config, определенный в папке frameworks / config на вашем сервере.

Обратите внимание, что вы также потеряете доступ к папке / bin, / app_code и т. Д. Это может или не может быть тем, что вы хотите.

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

1 голос
/ 27 апреля 2009

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

1 голос
/ 24 апреля 2009

Нет. Для общего хостинга и простоты дизайна.

IIS7 немного меняет это, позволяя явно блокировать / разблокировать конфиги.

0 голосов
/ 25 декабря 2011

Я только что столкнулся с этой проблемой в своей работе, и я решил создать новый веб-сайт вместо того, чтобы пытаться вложить мое приложение в существующий веб-сайт. Я сохранил сопоставление домена для нового приложения (например, www.mysite.com), но изменил номер порта / сопоставление.

В результате я могу использовать свое новое приложение на www.mysite.com:88, и мне не нужно было использовать поддомен.

Предостережение в том, что мое приложение является веб-службой, поэтому возможность указать номер порта в URL была для меня возможной. Возможно, это не вариант для вас, но я подумал, что опубликую это, если это поможет кому-то в моей ситуации.

Решение <location path="." inheritInChildApplications="false"></location> мне не подошло, так как inheritInChildApplications, похоже, не существовало до ASP.Net Framework 4.0?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...