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

Как вы предотвращаете наследование веб-сайта IIS по умолчанию на виртуальных каталогах?

У меня есть следующий код в файле web.config сайта IIS по умолчанию.

<httpModules>
    <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
</httpModules>

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

Не удалось загрузить файл или сборку "Графики" или одну из его зависимостей. Система не может найти указанный файл.

Виртуальный каталог наследует модули из файла web.config по умолчанию.

Как остановить это наследование?

4b9b3361

Ответ 1

Я нашел ответ. Оберните раздел HttpModule в тегах местоположения и установите для атрибута inheritInChildApplications значение false.

<location path="." inheritInChildApplications="false">
  <system.web>
    <httpModules>
      <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/>
    </httpModules>
  </system.web>
</location>

Теперь любые виртуальные каталоги не наследуют настройки в этом разделе.

@GateKiller Это не другой сайт, его виртуальный каталог, поэтому наследование действительно происходит.

@petrich Я ударил и пропустил результаты, используя <remove />. Я должен помнить, чтобы добавить его в каждый виртуальный каталог, который является болью.

Ответ 2

Добавьте в виртуальный каталог файл web.config:

<httpModules>
    <remove name="ChartStreamHandler"/>
</httpModules>

Ответ 3

В соответствии с Microsoft другие веб-сайты не наследуют настройки с веб-сайта по умолчанию. Вы имеете в виду, что вы редактируете файл web.config по умолчанию, который находится в той же папке, что и файл machine.config?