Как вы предотвращаете наследование файла web.config сайта IIS по умолчанию виртуальными каталогами?

StackOverflow https://stackoverflow.com/questions/37759

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

Я нашел ответ. Оберните раздел 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 />. Я должен помнить, чтобы добавить его в каждый виртуальный каталог, что является болью.

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top