Información general sobre la API de configuración de ASP.NET

Actualización: noviembre 2007

La API de configuración de ASP.NET permite desarrollar, implementar y administrar datos de configuración de la aplicación utilizando una interfaz de programación única. Puede utilizar la configuración API para desarrollar y modificar mediante programación las configuraciones de ASP.NET completas sin editar directamente el XML en los archivos de configuración. Además, puede utilizar la API de configuración en aplicaciones de consola y scripts que desarrolle, en herramientas de administración basadas en Web y en complementos MMC (Microsoft Management Console). Las dos herramientas de administración y configuración siguientes utilizan la API de configuración y están incluidas en la versión 2.0 de .NET Framework:

  • El complemento MMC de ASP.NET, que utiliza la API de configuración para simplificar las tareas administrativas y proporciona una vista integrada de los datos de configuración local de todos los niveles de la jerarquía de configuración.

  • La herramienta Administración de sitios Web, que permite administrar las opciones de configuración para aplicaciones locales y remotas, incluso los sitios hospedados.

La API de configuración de ASP.NET es independiente de la API de configuración mediante programación de Internet Information Services (IIS). Para obtener más información, vea Using IIS Programmatic Administration.

Funciones de la API de configuración

La API de configuración de ASP.NET comprende un conjunto de objetos de administración de ASP.NET que puede utilizar para configurar mediante programación sitios Web y aplicaciones. Los objetos de administración se implementan como una biblioteca de clases de .NET Framework. El modelo de programación de la API de configuración ayuda a garantizar la coherencia y la fiabilidad del código aplicando los tipos de datos en tiempo de compilación.

Para facilitar la administración de las configuraciones de aplicación, la API de configuración permite ver los datos que se combinan desde todos los puntos de la jerarquía de configuración como una colección única, en lugar de ver los datos como colecciones individuales de distintos archivos de configuración. Además, la API de configuración permite manipular las configuraciones de aplicación completas sin editar directamente el XML en los archivos de configuración. Por último, la API simplifica las tareas de configuración al admitir herramientas administrativas, como la herramienta Administración de sitios Web.

La API de configuración simplifica la implementación al admitir la creación de archivos de configuración en un equipo y ejecutar scripts de configuración en varios equipos.

La API de configuración no admite la creación de aplicaciones IIS. Para obtener información sobre cómo escribir aplicaciones de administración para IIS, vea Using System.DirectoryServices to Configure IIS en el SDK de IIS.

Trabajar con opciones de configuración locales y remotas

Un objeto Configuration representa la vista combinada de las opciones de configuración que se aplican a una entidad física específica, como un equipo, o a una entidad lógica, como una aplicación o sitio Web. La entidad lógica especificada puede existir en el equipo local o en un servidor remoto.

Cuando no existen archivos de configuración para una entidad especificada, el objeto Configuration representa las opciones de configuración predeterminadas tal se se definen en el archivo Machine.config.

Puede obtener un objeto Configuration utilizando uno de los métodos de configuración abiertos de las clases siguientes:

Estos métodos devolverán un objeto Configuration, que a su vez proporciona los métodos y propiedades necesarios para controlar los archivos de configuración subyacentes. Puede tener acceso de lectura o escritura a estos archivos.

  • Lectura    Puede utilizar el método GetSection o GetSectionGroup para leer información de configuración. El usuario o el proceso que lee debe tener permisos de lectura en todos los archivos de configuración de la jerarquía.

    Nota:

    Si utiliza un método GetSection estático que acepta un parámetro path, el parámetro path debe hacer referencia a la aplicación en la que se ejecuta el código. De lo contrario, se omite el parámetro y se devuelve la información de configuración para la aplicación que está actualmente en ejecución.

  • Escritura   Puede utilizar uno de los métodos Save para escribir información de configuración. El usuario o el proceso que escribe debe tener permisos de escritura en el archivo y el directorio de configuración en el nivel de jerarquía de configuración actual, así como permisos de lectura en todos los archivos de configuración de la jerarquía.

Para generar un archivo de configuración que representa las opciones de configuración heredadas para una entidad especificada, utilice uno de los siguientes métodos de configuración de guardado:

  • El método Save, para crear un nuevo archivo de configuración.

  • El método SaveAs, para generar un nuevo archivo de configuración en otra ubicación.

Nota:

Para permitir el acceso a las opciones de configuración en un equipo remoto, utilice la herramienta de la línea de comandos de Aspnet_regiis. Para obtener más información sobre esta herramienta, vea Herramienta Registro de IIS en ASP.NET (Aspnet_regiis.exe). Para obtener información sobre cómo crear y tener acceso a opciones de configuración personalizadas distintas de las secciones intrínsecas incluidas en .NET Framework, vea ConfigurationSection.

Ejemplos de código

Desde una página ASP.NET, puede utilizar el código siguiente para obtener información de configuración sobre la aplicación en la que se ejecuta la página ASP.NET. Este ejemplo de código utiliza el método WebConfigurationManager.GetSection estático.

System.Web.Configuration.UrlMappingsSection urlMaps =
    (System.Web.Configuration.UrlMappingsSection)
    System.Web.Configuration.WebConfigurationManager.GetSection(
    "system.web/urlMappings");
Bool urlMappingsEnabled = urlMaps.IsEnabled;

Desde una aplicación ASP.NET o una aplicación de cliente, puede utilizar el código siguiente para obtener información de configuración sobre una aplicación independiente. Este ejemplo de código utiliza el método GetSection no estático del objeto System.Configuration.Configuration.

System.Configuration.Configuration config =
    System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(
    "/SampleWebApp");
System.Web.Configuration.UrlMappingsSection urlMaps =
    (System.Web.Configuration.UrlMappingsSection)
    System.Web.Configuration.WebConfigurationManager.GetSection(
    "system.web/urlMappings");
bool urlMappingsEnabled = urlMaps.IsEnabled;

Clases de configuración y espacios de nombres

Numerosas clases y métodos de configuración son similares entre sí. La tabla siguiente describe las clases de configuración y los espacios de nombres que más se utilizan. Para obtener información sobre escenarios de uso y ejemplos de código que utilizan estas clases y espacios de nombres, vea Utilizar las clases Configuration.

Clase de configuración o espacio de nombres

Descripción

System.Configuration (espacio de nombres)

Contiene las clases de configuración principales para todas las aplicaciones de .NET Framework. Esto incluye las clases de controlador de secciones para las secciones de configuración de cliente .NET Framework definidas en Esquema de los archivos de configuración de .NET Framework. Las clases de controlador de secciones se utilizan para obtener datos de configuración para una sección a partir de métodos, como GetSection y GetSectionGroup. Estos dos métodos son no estáticos. Para obtener más información, consulte la sección Trabajar con métodos estáticos y no estáticos anteriormente en este tema.

Las clases de controlador de secciones de ASP.NET están contenidas en el espacio de nombres System.Web.Configuration.

System.Configuration.Configuration (clase)

Representa un conjunto de datos de configuración para un equipo, aplicación, directorio Web u otro recurso. Una instancia de la clase Configuration corresponde a las opciones de configuración combinadas contenidas en la jerarquía.

Esta clase contiene métodos útiles, como GetSection y GetSectionGroup, para actualizar las opciones de configuración, y obtener referencias a secciones y grupos de sección. Estos dos métodos son no estáticos. Para obtener más información, consulte la sección Trabajar con métodos estáticos y no estáticos anteriormente en este tema.

Esta clase se utiliza como un tipo de valor devuelto para los métodos que obtienen datos de configuración en tiempo de diseño, como los métodos de las clases WebConfigurationManager y ConfigurationManager.

System.Web.Configuration (espacio de nombres)

Contiene las clases de controlador de secciones para las secciones de configuración de ASP.NET definidas en Opciones de configuración de ASP.NET. Las clases de controlador de secciones se utilizan para obtener datos de configuración para una sección a partir de métodos, como GetSection y GetSectionGroup. Estos dos métodos son estáticos. Para obtener más información, consulte la sección Trabajar con métodos estáticos y no estáticos anteriormente en este tema.

System.Web.Configuration.WebConfigurationManager (clase)

Proporciona métodos útiles para obtener referencias para opciones de configuración en tiempo de ejecución y en tiempo de diseño. Estos métodos utilizan la clase System.Configuration.Configuration como un tipo de valor devuelto. Puede utilizar de forma intercambiable el método GetSection estático de esta clase o el método GetSection no estático de la clase System.Configuration.ConfigurationManager. Para obtener más información, consulte la sección Trabajar con métodos estáticos y no estáticos anteriormente en este tema.

Para las configuraciones de aplicación Web, se recomienda utilizar la clase System.Web.Configuration.WebConfigurationManager y no la clase System.Configuration.ConfigurationManager.

System.Configuration.Provider (espacio de nombres)

Muestra una forma de personalizar y extender el proveedor de configuración. Ésta es la clase base para todas las clases de proveedores del sistema de configuración.

System.Web.Management (espacio de nombres)

Contiene clases e interfaces que permiten administrar y supervisar el estado de las aplicaciones Web. En sentido estricto, este espacio de nombres no se considera parte de la API de configuración. Por ejemplo, las clases efectúan el seguimiento y el desencadenamiento de eventos en este espacio de nombres. Para obtener más información, vea Solución de problemas y depuración en ASP.NET.

System.Management.Instrumentation (espacio de nombres)

Proporciona las clases necesarias para que la instrumentación de aplicaciones exponga su información de administración y eventos mediante Windows Management Instrumentation (WMI) a los posibles consumidores. La supervisión del estado de ASP.NET utiliza WMI para proporcionar eventos. En sentido estricto, este espacio de nombres no se considera parte de la API de configuración.

Estructura de herencia de clases de configuración

El diagrama siguiente muestra las relaciones de herencia entre las clases en el espacio de nombres System.Web.Configuration y las clases en el espacio de nombres System.Configuration. Puede utilizar este diagrama para entender las propiedades y métodos que están disponibles para el objeto del que ha creado actualmente una instancia y para obtener más información.

Estructura de agregación de clases de configuración

El diagrama siguiente muestra las relaciones de herencia entre las clases en el espacio de nombres System.Web.Configuration y las clases en el espacio de nombres System.Configuration. Puede utilizar este diagrama para entender las clases de las que se crean instancias como objetos dentro de otras clases.

Generar herramientas especializadas

Es posible que deba permitir a muchos administradores administrar recursos asignados, como sitios Web y aplicaciones específicos, a la vez que limitar las acciones que estos administradores puedan realizar en otros recursos. Puede desarrollar herramientas de administración que utilizan la API de configuración de ASP.NET para exponer sólo aquellas opciones de configuración que los administradores necesitan para realizar su trabajo, a la vez que se niega el acceso a otras opciones. Esto da autoridad a los administradores y ayuda a proteger los recursos eliminando la necesidad de un acceso directo a los archivos de configuración.

Herramientas para varios servidores

Si administra muchos servidores, es posible que necesite implementar y administrar las mismas aplicaciones ASP.NET en cada servidor. Por ejemplo, la administración de una batería de servidores Web puede implicar las tareas siguientes:

  • Escribir un script que configure la misma aplicación ASP.NET en cualquiera o en todos los servidores de la batería de servidores Web.

  • Bloquear algunos de los archivos que se utilizan para cada instancia de la aplicación.

  • Automatizar una auditoría que registra configuraciones de aplicaciones implementadas para garantizar que la instalación se configura de la misma manera en cada equipo.

  • Editar un cambio en la configuración una vez y aplicar a continuación el cambio a todas las instancias de la aplicación, dondequiera que estén instaladas.

Además, la API de configuración de ASP.NET admite la ejecución por lotes en varios servidores.

Crear y administrar la configuración con una herramienta

Como propietario del sitio, puede utilizar el complemento MMC de ASP.NET MMC para crear y administrar configuraciones de aplicaciones ASP.NET en un equipo. El complemento MMC de ASP.NET expone la funcionalidad de la API de configuración de ASP.NET mediante una interfaz de usuario gráfica. El complemento MMC de ASP.NET proporciona una vista unificada de opciones de configuración de varios archivos de configuración, como sesión, seguridad, errores y seguimiento. Puede cambiar la configuración sin editar directamente el XML en los archivos de configuración. Para obtener más información, vea Complemento MMC para ASP.NET.

Vea también

Tareas

Cómo: Tener acceso a las opciones de configuración de ASP.NET mediante programación

Cómo: Leer la configuración de la aplicación en un archivo Web.config

Cómo: Leer las cadenas de conexión en un archivo Web.config

Conceptos

Utilizar las clases Configuration

Otros recursos

API de configuración de ASP.NET