Compartir a través de


10 mejores cambios en IIS 7.0

de Walter Oliver

Puede encontrar la entrada de blog original 10 mejores cambios en IIS 7.0.

1. Configuración sencilla y ajustable desde la línea de comandos

Instale solo los componentes IIS necesarios para ejecutar el sitio

Ejemplo:

start /w pkgmgr /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-Security;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

2. Gran trayectoria de compatibilida

  • La mayoría de las aplicaciones ASP y ASP.NET (+99 %) funcionaron.

    • Una aplicación encontró un cambio importante
    • Una serie de aplicaciones necesitaron migrar la configuración para ejecutarse en integrado

(Tenemos alrededor de 260 aplicaciones que se ejecutan en www.microsoft.com tal como se define en IIS. Hay miles de páginas de código que podrían haberse roto, pero no fue así.)

  • La canalización integrada es la nueva canalización de procesamiento de solicitudes unificada. Dicha integración aporta las siguientes ventajas:

    • Permitir que los servicios proporcionados por módulos nativos y administrados se apliquen a todas las solicitudes, independientemente del controlador. Por ejemplo, la autenticación de formularios administrados se puede usar para todo el contenido, entre ellos, las páginas ASP, CGIs y archivos estáticos.
    • Habilitar componentes ASP.NET para proporcionar funcionalidades que antes no estaban disponibles debido a su ubicación en la canalización del servidor. Por ejemplo, un módulo administrado que proporciona la funcionalidad de reescritura de solicitudes puede reescribir la solicitud antes de que cualquier procesamiento del servidor, incluida la autenticación, ocurra.
    • Un único lugar para implementar, configurar, supervisar y admitir características del servidor. Por ejemplo, la configuración de asignación de un solo módulo y controlador, de errores personalizados únicos, de autorización de URL única.
  • El modo ASP clásico permite migrar aplicaciones de forma sencilla

  • Uso de AppCmd para migrar aplicaciones al modo integrado

    • %windir%\system32\inetsrv\APPCMD.EXE migrar configuración de la <ruta de acceso de la aplicación>`
    • Para obtener más información sobre AppCmd.exe, consulte Introducción a AppCmd.exe
  • Capa de compatibilidad con la metabase de IIS 6.0

    • Permite ejecutar scripts ADSI antiguos
    • Se debe instalar el módulo de compatibilidad de Metabase de IIS 6.0

3. ¡No más metabase!

  • Limpia el esquema de texto no cifrado

  • La configuración de IIS se almacena en el archivo de configuración XML (applicationHost.config)

    • La metabase existe solo para SMTP, NNTP y FTP
  • Facilidad para hacer cambios globales

    • Actualiza el archivo applicationHost.config principal y lo copia en todos los servidores web
    • Reemplaza nuestra compleja solución de script basada en ADSI para los cambios de metabase
  • Consideraciones de Microsoft.com

    • Tenga cuidado de copiar en servidores de producción en carga. (Al insertar un nuevo archivo applicationHost.config, los grupos de aplicaciones y las aplicaciones se reciclarán. Si depende en gran parte del almacenamiento en caché, podría causar problemas en el entorno mientras que CLR se vuelve a cargar.)

4. Configuración centralizada

  • applicationHost.config se almacena en un recurso compartido de UNC
  • Le permite copiar en dos servidores (quizás cuatro) en lugar de 80

Posible problema: administrar los cambios de contraseña de la cuenta usada para conectarse al almacén de configuración. (Se debe a que por ahora no se puede usar el recurso compartido de UNC que se ejecuta en el servicio de red, que usamos en gran medida. Actualmente necesita una cuenta de dominio, para la cual nuestra directiva de seguridad exige un cambio periódico de contraseña)

5. Configuración delegada

  • Ahora, el administrador puede delegar las configuraciones de IIS al propietario de la aplicación

  • Las configuraciones se definen en el archivo web.config del directorio de la aplicación

  • El ejemplo de configuración que se va a delegar incluye:

    • La sección System.webServer de applicationHost.config
    • Almacenamiento en caché, defaultDocument, httpErrors y seguridad

Para obtener más información, consulte Configuración delegada.

6. AppCmd y otras nuevas opciones de administración

  • Administración a través de la interfaz de usuario

    • Nueva apariencia modular basada en tareas
    • Se aleja del paradigma de clic o propiedades con el botón derecho
  • Administración desde la línea de comandos

    • AppCmd
  • Utilidad de línea de comandos que reemplaza adsutil.vbs, iisapp.vbs y otros

  • Permite administrar sitios, aplicaciones, vdirs, grupos de aplicaciones, módulos, seguimiento, PowerShell y demás desde la línea de comandos

  • La comunidad de IIS crea cmdlets de PowerShell específicos para IIS

  • Consideraciones sobre MSCOM

    • Limitaciones de AppCmd: no es remoto
    • No hay proveedor de IIS para PowerShell

7. Seguimiento de solicitudes erróneas

  • Almacena en búfer los eventos de seguimiento de las solicitudes y los vacía en el disco si cumplen los criterios de error

  • Captura los datos de seguimiento mientras duerme

  • Impacto mínimo en el rendimiento al tratar solicitudes erróneas

  • Prueba rápida: habilitar el seguimiento de todas las extensiones de archivo y errores da como resultado aproximadamente un 5 % menos de solicitudes/segundo en carga de esfuerzo completa (no realizar en producción).

  • Vea las solicitudes que se están ejecutando en el momento con AppCmd

    • Solicitudes de lista appcmd (para todas las solicitudes)
    • Solicitudes de lista appcmd /apppool.name:DefaultAppPool
  • Nuevo programador de tareas

    • Desencadena tareas en eventos

Para obtener más información, consulte Seguimiento de solicitudes erróneas.

8. Filtro de solicitudes

  • No más URLScan

  • Configuración de </requestFiltering> en applicationHost.config

  • Problema para Microsoft.com: si el nombre de archivo incluye "+", allowDoubleEscaping debe establecerse en "true"

    • <requestFiltering allowDoubleEscaping="true">
  • Permite o no extensiones de archivo y elementos de menú contextual específicos

    • <add fileExtension=".exe" allowed="false" />
  • DenyURLSequences

    • <add sequence="./" />
    • <add sequence="/." />
  • RequestLimits

    • maxAllowedContentLength="1000000"
    • maxUrl="260"
    • maxQueryString="2048"

9. Contenido UNC

  • Sincronización de contenido simplificada

  • Superficie de H/W reducida (posible reducción de costes)

    • Punto de dolor habitual del sector

10. Almacenamiento en caché de salida del contenido dinámico

  • Menos llamadas integradas a las dependencias de back-end
  • Aumentos significativos del rendimiento
  • Se puede hacer una sencilla prueba de esfuerzo de WCAT (Herramienta de análisis de capacidad web) en www.microsoft.com/en/us/default.aspx

No es adecuado para todas las aplicaciones (por ejemplo, no es eficaz para aquellas con salida muy personalizada)