Compatibilidad de metabase con IIS 7 y versiones posteriores

de Saad Ladki

Introducción

El sistema de configuración en IIS 7 y versiones posteriores es compatible con las interfaces de configuración heredadas en el nivel de API. Admite la interfaz de objetos base de administración (ABO), también conocida como IMSAdminBase, así como los proveedores de WMI y ADSI que se han creado sobre ABO en IIS 6.0. Las aplicaciones y scripts existentes todavía pueden llamar a esas interfaces de programación en IIS 7.0 y versiones posteriores y seguir funcionando, siempre y cuando se instale el componente Compatibilidad de metabase de IIS.

Nota:

De manera predeterminada, este componente no está instalado.

Instalación de la admisión de Compatibilidad de metabase

Encontrará este componente en la configuración, en Internet Information Services- >Herramientas de administración web -> Característica de capacidad de administración de IIS 6.0.

Este componente no está instalado de forma predeterminada porque IIS no se configura inicialmente para usarlo. Las interfaces heredadas tienen algunas limitaciones y no son ideales para trabajar con archivos de configuración distribuida (consulte la sección Limitaciones a continuación); por lo tanto, se recomienda que, con el tiempo y especialmente al abrir el sistema de configuración para una delegación cada vez mayor (es decir, los archivos web.config con opciones de IIS en ellos están cada vez más presentes en el sistema), los clientes considerarán la posibilidad de portar scripts y aplicaciones heredados al nuevo sistema y sus interfaces.

También se recomienda desarrollar nuevos scripts y aplicaciones con las nuevas interfaces, de modo que funcionen de forma ideal con el nuevo sistema y puedan tener acceso a las nuevas propiedades, conceptos y estructura del sistema de configuración.

Cuando todos los scripts y aplicaciones heredados se porten a las nuevas interfaces, se recomienda desinstalar la característica Compatibilidad de metabase.

Funcionamiento de Compatibilidad de metabase

La característica Compatibilidad de metabase se ejecuta dentro del servicio Metabase (IISADMIN). Intercepta todas las llamadas de método a ABO. Si la información de la llamada al método está relacionada con la configuración del servidor web, se asigna al nuevo sistema. Si está relacionada con la configuración de FTP, SMTP o NNTP, seguirá la lógica normal del sistema Metabase y terminará en el archivo Metabase.

Tenga en cuenta que incluso las propiedades personalizadas con la configuración del servidor web se asignan (y conservan en) el nuevo sistema.

La decisión de asignación se basa en el nodo Metabase en cuestión. La configuración del servidor web suele estar en LM/W3SVC, incluidas las propiedades personalizadas, con algunas adiciones como las asignaciones MIME.

La asignación se realiza para traducir en ambos sentidos entre la parte posterior de la vista de ABO y la nueva vista del sistema. Por ejemplo, el nuevo sistema cuenta con un concepto de aplicaciones, en cada sitio y sobre todos los directorios virtuales. El sistema heredado administra las aplicaciones de forma diferente: simplemente se trata de directorios virtuales con una propiedad especial para marcarlos como aplicaciones (AppIsolated o AppRoot).

Al llamar a ABO para escribir la configuración del servidor web, el componente Compatibilidad de metabase conservará los datos en applicationHost.config. Esto se conoce como "escritura simultánea", ya que la información no se mantiene en memoria. Al llamar a ABO para leer la configuración del servidor web, el componente Compatibilidad de metabase la leerá desde applicationHost.config. Esto se conoce como "lectura simultánea", ya que la información, una vez más, no se captura de la memoria.

Los datos incompletos que no están listos para su consumo por parte del tiempo de ejecución del servidor se conservan en una sección especial de applicationHost.config, denominada customMetadata. Esta sección se usa como almacén persistente para la característica Compatibilidad de metabase y los clientes nunca deben modificar su contenido. Un ejemplo de datos incompletos es cuando el script heredado establece el identificador del sitio, pero no los enlaces de sitio. En IIS 6.0, dicha llamada habría creado un objeto de sitio no válido en la configuración. En IIS 7.0 y versiones posteriores, se mantiene en la sección, que el servidor no consume. Si se realiza una llamada posterior para establecer los enlaces de sitio, el objeto de sitio se considerará completo y se conservará en su totalidad en la sección, donde el tiempo de ejecución del servidor lo tomará. Los datos temporales se quitarán en ese momento, por lo que el usuario no tendrá que limpiar lo que quede en el sistema. Si no se realiza dicha llamada posterior, el tiempo de ejecución del servidor nunca verá este sitio no válido, pero los scripts heredados lo tendrán en la vista de ABO, como hicieron en IIS 6.0. Desde la perspectiva del script heredado, el sistema es totalmente compatible aquí con IIS 6.0.

Las propiedades del servidor web personalizadas que se establecen a través de scripts y aplicaciones heredados siempre se conservan en la sección. Se pueden recuperar a través de la interfaz heredada como en IIS 6.0, por lo que el sistema es totalmente compatible. Obviamente, esto es muy diferente de la manera recomendada de ampliar el sistema de configuración de IIS, por lo que otra razón para considerar la posibilidad de migrar estas aplicaciones, con el tiempo, para usar nuevas interfaces y nuevas características ofrecidas por el sistema de configuración de IIS 7.0 y versiones posteriores.

Otros datos de configuración de metabase

Tenga en cuenta que la configuración de FTP, SMTP y NNTP todavía se conserva en el sistema Metabase y no se ha portado a los nuevos sistemas de configuración de IIS. Las opciones de configuración de estos aún se pueden administrar a través de interfaces de programación heredadas y la edición directa del archivo metabase.xml.

Información general

La mayoría de las operaciones de las claves y propiedades de metabase funcionan sin problemas y el usuario se presenta con estos conceptos y nombres heredados y no los nuevos conceptos de IIS, como secciones de configuración y propiedades con nombre (ABO sigue funcionando con identificadores de propiedad; ADSI sigue funcionando con los nombres de propiedad heredados).

Los usuarios heredados todavía pueden usar el esquema ADSI e incluso ampliarlo como solían hacer en IIS 6.0.

Compatibilidad con archivos XML

La configuración del servidor web, incluida la configuración personalizada que amplía el servidor web, se conserva en system32\inetsrv\applicationHost.config y no metabase.xml. Por lo tanto, la compatibilidad heredada está en el nivel de API y no en el nivel de formato de archivo (y esta también es la razón por la que algunas características heredadas no son compatibles). El autor de llamada de la interfaz heredada obtendrá la "vista de ABO" de la configuración como hizo en IIS 6.0, y no el nuevo formato de archivo o nomenclatura o conceptos.

Una implicación es que no se admiten conceptos como ACL de metabase. Esto se debe a que están estrechamente relacionados con el formato del archivo Metabase. El sistema de configuración de IIS aprovecha las ACL de archivos estándar en los archivos de configuración. El sistema no proporciona una asignación entre las ACL de metabase y las ACL de archivos estándar.

Características como archivos de historial, copia de seguridad/restauración e importación/exportación funcionan de forma diferente porque se basan en el nuevo sistema de configuración. Por lo tanto, se omitirán las llamadas de ABO a la configuración de copia de seguridad.

Características de metabase heredadas

La auditoría de configuración se agregó a IIS 6.0 en Windows Server® 2003 Service Pack 1. Actualmente no es compatible con IIS 7.0 o versiones posteriores, ya que el nuevo sistema de configuración tiene un diseño muy diferente (p. ej., IIS 7.0 y versiones posteriores usan un sistema de configuración en proceso, mientras que IIS 6.0 usa un servicio de NT dedicado que se encapsula desde el código de usuario en otros procesos).

Propiedades de metabase heredadas

Solo se admiten las propiedades heredadas. Las propiedades de configuración de IIS 7.0 y versiones posteriores no se devuelven al usuario heredado, ni tampoco las propiedades de configuración de .NET Framework.

Limitaciones de asignación

El algoritmo de asignación debe ocuparse de las diferencias entre los sistemas de configuración de IIS 6.0 y los de IIS 7.0 y versiones posteriores. Por ejemplo, IIS 6.0 no requería que los sitios tuvieran nombres ("comentarios del servidor"); y si se les asignaban nombres, no era necesario que estos nombres fueran únicos. En IIS 7.0 y versiones posteriores, cada sitio debe tener un nombre único. Por lo tanto, la asignación de la propiedad ServerComment antigua a la nueva propiedad Name no es trivial. El algoritmo de asignación obliga a que los nombres sean únicos por sitio porque es un requisito del sistema de configuración de IIS 7.0 y versiones posteriores; lo hace agregando números a los comentarios del servidor para crear unicidad. El resultado final es que el valor que se establece realmente para el comentario del servidor es distinto del especificado por el script.

Configuración distribuida

Solo applicationHost.config es compatible con la característica Compatibilidad de metabase. La configuración de los archivos web.config no se devuelve al usuario heredado. Las etiquetas de ubicación se usan en applicationHost.config para admitir la configuración por dirección URL.