27 oct 2007

// // Comentar

Aplicaciones heredadas en ASP .NET 2.0

Cuando trabajamos con ASP .NET a veces tenemos la necesidad de tener múltiples aplicaciones bajo un mismo servidor es decir tenemos una aplicación el directorio principal y en subdirectorios tenemos mas aplicaciones, pero de esto surge un problema, que cada aplicación que se encuentra bajo un subdirectorio hereda las configuraciones establecidas en el archivo web.config del directorio raíz, para solucionar este problema se usan muchos como allowOverride, lockAttributes, lockAllAttributesExcept, lockAllElementsExcept, lockItem and lockElements pero hay algo mucho mejor que esto y es nuevo en ASP .NET 2.0.

Algo muy particular seria un error como este en una aplicacion:

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Could not load type 'MyWebPagesStarterKit.Providers.CustomRoleProvider'.

Source Error:


Line 50:       <providers>
Line 51: <clear/>
Line 52: <add name="CustomRoleProvider" type="MyWebPagesStarterKit.Providers.CustomRoleProvider"/>
Line 53: </providers>
Line 54: </roleManager>

Para arreglar esto tenemos el atributo inheritInChildApplications para no permitir heredar una sección entera de configuración.

La forma de implementar este atributo es de la siguiente manera:

<location path="." inheritInChildApplications="false">
<system.web>
<!-- Aqui la configuracion que no deseas heredar -->
</system.web>
</location>
De esta manera ya podemos tener todas las aplicaciones heredadas que deseemos.

Espero este pequeño aporte les sirva.

Saludos,

0 comentarios: