2008-09-01 3 views
17

Ich habe den folgenden Code in einer Datei web.config der Standard-IIS-Site.Wie verhindern Sie, dass die web.config-Datei der IIS-Standardsite von virtuellen Verzeichnissen geerbt wird?

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

Dann, wenn ich Setup und wechseln Sie zu einem virtuellen Verzeichnis ich diesen Fehler

konnte nicht geladen werden Datei oder Assembly ‚Charts‘ oder eine ihrer Abhängigkeiten. Die angegebene Datei wurde vom System nicht gefunden.

Das virtuelle Verzeichnis erbt die Module vom Standard web.config.

Wie stoppen Sie diese Vererbung?

Antwort

20

Ich habe die Antwort gefunden. Umschließen Sie den Abschnitt HttpModule in Positions-Tags und setzen Sie das Attribut inheritInChildApplications auf false.

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

Jetzt übernehmen alle virtuellen Verzeichnisse die Einstellungen in diesem Standortabschnitt nicht.

@GateKiller Dies ist keine andere Website, es ist ein virtuelles Verzeichnis, so dass Vererbung auftritt.

@petrich Ich hatte Treffer und miss Ergebnisse mit <remove />. Ich muss daran denken, es zu jedem virtuellen Verzeichnis hinzuzufügen, was ein Schmerz ist.

+0

Ja, ich habe auch gefunden, dass es ein Schmerz ist. Danke für den Tipp auf inheritInChildApplications. – rpetrich

2

Fügen Sie Folgendes in die Datei Web.config der virtuellen Verzeichnisses:

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

According to Microsoft, andere Websites erben die Einstellungen nicht von der Standardwebsite. Meinst du, du redest die Standard-Datei web.config, die sich im selben Ordner wie die machine.config befindet?

+0

Ich denke, dass der Fragesteller über ein virtuelles Verzeichnis der Site spricht, die von ihm erbt. – Sam