2008-09-01 21 views
17

Mam następujący kod w pliku web.config domyślnej witryny IIS.Jak zapobiec dziedziczeniu domyślnego pliku web.config witryny IIS przez katalogi wirtualne?

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

Wtedy kiedy konfiguracji i przejdź do katalogu wirtualnego otrzymuję ten błąd

Nie można załadować pliku lub zestawu „Wykresy” lub jeden z jego zależnościami. System nie może odnaleźć określonego pliku.

Katalog wirtualny dziedziczy moduły z domyślnego pliku web.config.

Jak zatrzymać ten spadek?

Odpowiedz

20

Znalazłem odpowiedź. Zwiń sekcję HttpModule w znacznikach lokalizacji i ustaw atrybut inheritInChildApplications na false.

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

Teraz wszystkie katalogi wirtualne nie będą dziedziczyć ustawień w tej sekcji lokalizacji.

@GateKiller To nie jest kolejna strona internetowa, jej katalog wirtualny, więc występuje dziedziczenie.

@petrich Mam hit i miss wyników przy użyciu <remove />. Muszę pamiętać, aby dodać go do każdego katalogu wirtualnego, co jest uciążliwe.

+0

Tak, też uważam, że to też jest ból. Dzięki za podpowiedź o inheritInChildApplications. – rpetrich

2

Dodaj poniższe linie do pliku web.config katalogu wirtualnego w:

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

According to Microsoft, inne strony internetowe nie dziedziczą ustawienia z domyślnej Serwisu. Czy masz na myśli edytowanie domyślnego pliku web.config, który znajduje się w tym samym folderze co plik machine.config?

+0

Myślę, że pytający mówi o wirtualnym katalogu dziedziczącym z niego stronę. – Sam