2011-10-02 23 views
12

¿Cuál es el uso del <clear/> en el archivo web.config?web config clear

lo tengo bajo connectionStrings:

<connectionStrings> 
     <clear /> 
    </connectionStrings> 

Respuesta

12

que borra todas las claves heredadas, eso es todo.

Aquí está el artículo de MSDN: http://msdn.microsoft.com/en-us/library/aa903345(v=vs.71).aspx

+0

¿Cuándo tendré las llaves heredadas? –

+2

Cuando estás en una carpeta que no sea root. Todas las claves en la carpeta principal se heredarán. –

+2

También puede heredar de machine.config. –

8

Elimina todas las referencias a las cadenas de conexión heredados, permitiendo sólo las cadenas de conexión que se agregan por el elemento de complemento actual.

En Brifly:

Cada aplicación Web ASP.NET tiene su propio archivo de configuración llamado archivo web.config. De hecho, cada directorio en la aplicación ASP.NET puede tener uno. La configuración en cada archivo web.config se aplica a las páginas en el directorio donde se ubica y a todos los subdirectorios de ese directorio.

Esto se denomina Herencia de configuración.

Así que si crea una aplicación ASP.NET y establece su archivo web.config, agrega HttpHandlers personalizados, módulo UrlRewriting, etc. y trata de crear otra aplicación web ASP.NET en la subcarpeta, puede terminar teniendo problemas porque la aplicación en la subcarpeta heredará todas las configuraciones de su web.config principal.

Así que si para el módulo URLRewriter ejemplo de configuración en sus aplicaciones Web raíz de esta manera:

<httpModules> 

    <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/> 

    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

    </httpModules> 

Y en su aplicación web infantil (en la subcarpeta) no está utilizando UrlRewriteModule, a continuación, si se intenta ejecutar el aplicación web hijo en su navegador, obtendrá un error como este: Error de configuración Descripción: Se produjo un error durante el procesamiento de un archivo de configuración requerido para atender esta solicitud. Revise los detalles de error específicos a continuación y modifique su archivo de configuración de manera adecuada.

analizador de mensajes de error: No se pudo cargar el archivo o ensamblado 'UrlRewritingNet.UrlRewriter' o uno de sus dependencias. El sistema no puede encontrar el archivo especificado. (D: Línea web.config \ Proyectos \ VS \ AspDotNetFaqProject \ sitio web \ 89)

Error de origen:

Línea 88: Línea 89 : Línea 90: Línea 91 :

Lo que sucede aquí es que debido a que UrlRewriteModule está configurado en la carpeta principal del archivo web.config, esta configuración es heredada por el archivo web.config de la aplicación secundaria, y debido a esto ASP.NET está buscando el archivo DLL UrlRewriteModule en el directorio BIN, y apagado Por supuesto que no está allí.

Afortunadamente, hay una solución fácil a este problema.

La primera cosa que puede hacer es quitar la HttpModule problemática en su aplicación web niño.archivo de configuración utilizando el comando quitar como este:

<httpModules> 

    <remove name="UrlRewriteModule" /> 

    </httpModules> 

Esto eliminaría el controlador y su aplicación funcionaría bien. O usted podría utilizar comando como este:

<httpModules> 

    <clear/> 

    </httpModules> 

Esto sería borrar todos los HttpModules en su aplicación niño.