2008-09-01 5 views
17

Tengo el siguiente código en un archivo web.config del sitio predeterminado de IIS.¿Cómo se evita que el archivo predeterminado web.config del sitio IIS sea heredado por los directorios virtuales?

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

Luego, cuando la configuración y vaya a un directorio virtual consigo este error

No se pudo cargar el archivo o ensamblado 'Gráficos' o uno de sus dependencias. El sistema no puede encontrar el archivo especificado.

El directorio virtual hereda los módulos desde el web.config defecto.

¿Cómo se detiene esta herencia?

Respuesta

20

He encontrado la respuesta. Ajustar la sección HttpModule en etiquetas de ubicación y establecer el atributo inheritInChildApplications en falso.

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

Ahora, cualquier directorio virtual no heredará la configuración en esta sección de ubicación.

@GateKiller Este no es otro sitio web, por lo que se produce es un directorio virtual de la herencia.

@petrich He había golpeado y perder los resultados utilizando <remove />. Tengo que recordar agregarlo a cada directorio virtual, lo cual es un problema.

+0

Sí, he encontrado que es un dolor también. Gracias por el consejo sobre inheritInChildApplications. – rpetrich

2

Agregue lo siguiente al archivo web.config del directorio virtual:

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

According to Microsoft, otros sitios web no heredan la configuración de la página web por defecto. ¿Quiere decir que está editando el archivo web.config predeterminado que se encuentra en la misma carpeta que machine.config?

+0

Creo que el asker está hablando de un directorio virtual del sitio que hereda de él. – Sam

Cuestiones relacionadas