2008-09-01 16 views
17

Ho il seguente codice in un file web.config del sito IIS predefinito.Come si impedisce che il file web.config predefinito di IIS venga ereditato dalle directory virtuali?

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

Poi, quando ho setup e selezionare una directory virtuale ottengo questo errore

Impossibile caricare il file o l'assembly 'Grafici' o una delle sue dipendenze. Il sistema non trova il file specificato.

La directory virtuale sta ereditando i moduli dal web.config predefinito.

Come si ferma questa eredità?

risposta

20

Ho trovato la risposta. Avvolgi la sezione HttpModule nei tag di posizione e imposta l'attributo inheritInChildApplications su false.

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

Ora qualsiasi directory virtuale non erediterà le impostazioni in questa sezione di posizione.

@GateKiller Questo non è un altro sito Web, è una directory virtuale in cui si verifica l'ereditarietà.

@petrich Ho avuto risultati imperdibili utilizzando <remove />. Devo ricordarmi di aggiungerlo a ogni directory virtuale che è un dolore.

+0

Sì, ho trovato anche un dolore. Grazie per il suggerimento su inheritInChildApplications. – rpetrich

2

Aggiungere il seguente al file web.config della directory virtuale:

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

According to Microsoft, altri siti non ereditano le impostazioni dal sito Web predefinito. Vuoi dire che stai modificando il web.config predefinito che si trova nella stessa cartella di machine.config?

+0

Penso che il richiedente stia parlando di una directory virtuale del sito che ne eredita. – Sam

Problemi correlati