2008-09-01 13 views
17

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

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

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

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

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

Как вы прекращаете это наследование?

ответ

20

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

+0

Да, я нашел, что это тоже боль. Спасибо за подсказку о inheritInChildApplications. – rpetrich

2

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

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

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

+0

Я думаю, что спрашивающий говорит о виртуальном каталоге сайта, наследующего от него. – Sam