Establecer valores de configuración específicos de la aplicación y del directorio en una aplicación de ASP.NET

En este artículo se describe cómo establecer valores de configuración específicos de la aplicación y específicos del directorio en ASP.NET.

              Versión original del producto: ASP.NET
Número de KB original: 815174

Resumen

El archivo Web.config se encuentra en el directorio raíz de una aplicación de ASP.NET. El archivo Web.config especifica información de configuración específica de la aplicación. También puede establecer los valores de configuración por directorio. Hay dos maneras de hacerlo:

  • Distribuir varios archivos Web.config a los directorios de la aplicación. Agregue un archivo Web.config en el directorio de la aplicación de ASP.NET con la configuración que invalide la configuración en un archivo deWeb.config de nivel superior o en el archivo de configuración del equipo del sistema (Machine.config).

  • Agregue la configuración por directorio o por archivo directamente al archivo deWeb.config aplicación. Este método usa un único archivo Web.config para activar la configuración por directorio. También puede usar este método en el archivo Machine.config para forzar la configuración en ASP.NET aplicaciones web y, a continuación, impedir queWeb.config archivos invaliden Machine.config configuración.

Uso del elemento location en el archivo Machine.config

Para especificar la configuración que se aplica a una aplicación web o directorio, puede agregar el <location> elemento al <configuration> elemento de un archivo deMachine.config del sistema. Resulta útil al centralizar los valores de configuración en un solo archivo. También es útil en entornos de hospedaje web para exigir valores de configuración específicos en aplicaciones web individuales.

El <location> elemento contiene dos atributos, path y allowOverride. El path atributo define el sitio o directorio virtual que cubren los valores de configuración. Para especificar que la configuración del <location> elemento se aplique al sitio web predeterminado, establezca el path atributo Default Web Siteen . Para especificar que la configuración se aplique a la aplicación denominada MyApp en el sitio web predeterminado, establezca el path atributo Default Web Site/MyAppen .

Cuando el allowOverride atributo es false, los archivos Web.config de los directorios de la aplicación web no pueden invalidar la configuración especificada en el <location> elemento . Es una configuración útil en entornos en los que debe restringir a los desarrolladores de aplicaciones la forma en que configuran una aplicación web. En el ejemplo siguiente se muestra una parte de un archivo Machine.config . El archivo requiere autenticación para acceder a la aplicación MyApp en el sitio web predeterminado y no se puede invalidar mediante la configuración de un archivo Web.config .

<configuration>
    <location path="Default Web Site/MyApp" allowOverride="false">
        <system.web>
            <authorization>
                <allow users="?" />
            </authorization>
        </system.web>
    </location>
</configuration>

Uso del elemento location en el archivo Web.config

Para especificar la configuración que se aplica a una aplicación o directorio específico, agregue el <location> elemento al <configuration> elemento de una aplicación Web.config archivo. El <location> elemento normalmente contiene un <system.web> elemento y otros elementos de configuración exactamente como se usan en el archivo Web.config . El path atributo del <location> elemento especifica el directorio virtual o el nombre de archivo donde se aplican los elementos de configuración de ubicación. En el ejemplo siguiente se muestra parte de un archivo deWeb.config de aplicación que especifica mensajes de error personalizados para el directorio virtual del foro.

<configuration>
    <location path="forum" >
        <system.web>
            <customErrors mode="RemoteOnly" defaultRedirect="forum-error.aspx">
                <error statusCode="404" redirect="forum-file-not-found.aspx" />
            </customErrors>
        </system.web>
    </location>
</configuration>

Referencias