¿Cómo se puede evitar que los directorios virtuales hereden el archivo web.config del sitio predeterminado de IIS?

StackOverflow https://stackoverflow.com/questions/37759

Pregunta

Tengo el siguiente código en un archivo web.config del sitio IIS predeterminado.

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

Luego, cuando configuro y busco un directorio virtual, aparece este error.

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

El directorio virtual hereda los módulos del web.config predeterminado.

¿Cómo se frena esta herencia?

¿Fue útil?

Solución

He encontrado la respuesta.Envuelva la sección HttpModule en etiquetas de ubicación y establezca el atributo herenciaInChildApplications en falso.

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

Ahora ningún directorio virtual heredará la configuración de esta sección de ubicación.

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

@petrich He tenido resultados impredecibles usando <remove />.Debo recordar agregarlo a cada directorio virtual, lo cual es una molestia.

Otros consejos

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

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

Según Microsoft, otros sitios web no heredan la configuración del sitio web predeterminado.¿Quiere decir que está editando el web.config predeterminado que se encuentra en la misma carpeta que machine.config?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top