Как вы предотвращаете наследование файла web.config сайта IIS по умолчанию виртуальными каталогами? - PullRequest
17 голосов
/ 01 сентября 2008

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

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

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

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

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

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

Ответы [ 3 ]

20 голосов
/ 01 сентября 2008

Я нашел ответ. Оберните раздел 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 голосов
/ 01 сентября 2008

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

<httpModules>
    <remove name="ChartStreamHandler"/>
</httpModules>
0 голосов
/ 01 сентября 2008

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

...