Подтвердить что ты не робот

Отключить наследование web.config?

У меня есть приложение для управления контентом в корневом каталоге моего сайта, и я пытаюсь использовать другое приложение (приложение для выставления счетов) в подпапке. К сожалению, web.config корневого сайта мешает суб-приложению.

Есть ли способ отключить наследование web.config для подпапки?

Update: Как указано Стивеном Беррисом, использование тега <location> может предотвратить наследование для части веб-конфигурации следующим образом:

<?xml version="1.0"?>
<configuration>
<configSections>
    ....
</configSections>
<location path="." inheritInChildApplications="false">
    <appSettings>
        ....
    </appSettings>
    <connectionStrings/>
    <system.web>
        ....
    </system.web>
    <system.codedom>
        ....
    </system.codedom>
    <system.webServer>
        ....
    </system.webServer>
</location>
<runtime>
    ....
</runtime>
</configuration>

Разделы <configSections> и <runtime> не будут приняты в тег... поэтому я думаю, что это делает большую часть работы. Кто-нибудь знает, как это сделать лучше?

4b9b3361

Ответ 2

Если вы можете использовать 2 отдельных пула приложений, вы можете полностью остановить наследование, используя attibute в файле applicationHost.config, как я описал в этом вопросе: "Запись уже добавлена" - Два отдельных пула приложений

<add name="MyAppPool" enableConfigurationOverride="false" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" >
    <processModel identityType="NetworkService" />
</add>

Ответ 3

По-моему, каждый раз, когда я боролся с этим, ответ заканчивается тем, что он эффективно НЕТ - и я оставляю это здесь для своего будущего себя, чтобы найти, чтобы он больше не тратил на него больше времени.

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

Ответ 4

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

Например, если вы определяете connectionString, добавьте тег <clear /> перед <add name=... /> и т.д. Для Membership определите все атрибуты, включая имя файла cookie. И так далее.

Это может сделать файл немного больше, но он определенно поможет вам избежать сценария "но он работал и на моем ящике": -)