Característica de inicio automático
La característica inicio automático de AppFabric se basa en la característica inicio automático de Internet Information Services (IIS) 7.5, que se incluye en Windows 7 y Windows Server 2008 R2. En IIS, puede configurar un grupo de aplicaciones y todas sus aplicaciones o un grupo de ellas para que se inicien automáticamente cuando se inicie el servicio IIS. La característica de inicio automático de AppFabric amplía estas funciones de modo que puede configurar algunos de sus servicios o todos ellos dentro de una aplicación para que se inicien automáticamente cuando se inicie la aplicación.
Ventajas de la característica de inicio automático
Cuando habilite la característica inicio automático para un servicio, éste se pondrá en marcha en cuanto se inicie la aplicación al que pertenece y antes de que el servicio reciba el primer mensaje de WCF procedente del cliente. Por lo tanto, el servicio procesa el primer mensaje rápidamente debido a que ya está inicializado. Por ejemplo, supongamos que un servicio debe conectarse a una base de datos para leer cientos de filas de datos con el fin de rellenar una estructura de datos en caché de .NET Framework la primera vez que se cree. El proceso de inicialización lleva mucho tiempo antes de que el servicio esté preparado para comenzar la operación real. Si usa inicio automático en este caso, el servicio estará inicializado antes de que reciba la primera llamada.
El componente HTTP.SYS de IIS procesa solicitudes HTTP y Servicio de activación de procesos de Windows (WAS) procesa solicitudes TCP, de canalizaciones con nombre y MSMQ mediante adaptadores de escucha personalizados de WCF que se incluyen con IIS. El adaptador de escucha establece una comunicación entre WAS y un servicio que usa protocolos distintos a HTTP. Para admitir los mensajes de procesamiento recibidos sobre otro protocolo, debe desarrollar adaptadores de escucha personalizados y otros módulos compatibles, lo cual puede resultar una tarea compleja. Para obtener más información sobre adaptadores de escucha, vea Listener Adapters (https://go.microsoft.com/fwlink/?LinkId=160359) (en inglés). Gracias a la compatibilidad con inicio automático, podrá implementar en IIS aplicaciones que admitan cualquier protocolo. Si habilita inicio automático para estas aplicaciones implementadas, WAS las activa y las mantiene activas en el proceso del trabajador.
Escenarios de inicio automático
Los servicios que usan la característica de inicio automático admiten escenarios como los siguientes:
Se reinicia el equipo en el que está implementada una aplicación. IIS, WAS, el grupo de aplicaciones, la aplicación y los servicios están configurados para que se inicien automáticamente con el equipo. Los servicios se inician automáticamente en este escenario al reiniciarse la aplicación. Si la aplicación se configura para iniciar automáticamente todos los servicios, se iniciarán automáticamente todos los servicios de la aplicación; en caso contrario, solamente se iniciarán los servicios especificados en el archivo Web.config.
Algunos protocolos, tal como el protocolo de anuncios de WS-Discovery, requieren que las aplicaciones estén siempre disponibles. Cuando habilite el inicio automático para una aplicación y sus servicios, la característica de inicio automático de Windows Server AppFabric inicia automáticamente los servicios cuando se inicie la aplicación que contiene los servicios.
El grupo de aplicaciones al que pertenece un servicio detecta que un elevado número de sus procesos de trabajador han pasado a estar en mal estado en un período de tiempo especificado e inicia el proceso de protección rápida contra errores. La característica de inicio automático admite la protección rápida contra errores en la cual, si un proceso tiene más de un número configurable de errores durante un período de tiempo especificado, la aplicación y sus servicios no se reiniciarán una vez superado el umbral de protección rápida contra errores.
Escenario de reinicio de equipo
En la lista siguiente se incluyen los pasos habituales implicados en un escenario de ejemplo de reinicio de equipo que admite la característica de inicio automático:
El Servicio de activación de procesos de Windows (WAS) se inicia si el servicio está configurado para inicio automático. Puede configurar WAS mediante el applet Servicios de Herramientas administrativas.
WAS inicia todos los grupos de aplicaciones que estén configurados para inicio automático. La opción startMode de estos grupos de aplicaciones se establece en AlwaysRunning en el archivo ApplicationHost.config.
<applicationPools> <add name=”MyAppPool” startMode=”AlwaysRunning” /> </applicationPools>
El administrador de aplicaciones de WAS carga todas las aplicaciones que estén configuradas para inicio automático. El atributo serviceAutoStartEnabled se establece en true para estas aplicaciones en el archivo ApplicationHost.config.
<sites> <site name="MySite" id="1"> <application path="/" serviceAutoStartEnabled=”true” serviceAutoStartProvider=”Service” serviceAutoStartMode=”All/Custom”> <virtualDirectory path="/" physicalPath="C:\MySite" /> </application> </site> </sites>
El proceso de inicialización de aplicaciones invoca al módulo de inicio automático, que inicia los servicios configurados para inicio automático.
El atributo serviceAutoStartProvider es un punto de extensibilidad de IIS que puede usar para iniciar objetos personalizados. El programa de instalación de Windows Server AppFabric instala el proveedor de Servicio y amplía el esquema de IIS para agregar el atributo serviceAutoStartMode.
Si el valor serviceAutoStartMode de una aplicación se establece en Todo, se iniciarán todos los servicios de la aplicación. Si el valor serviceAutoStartMode de una aplicación se establece en Personalizado, solamente se iniciarán los servicios especificados en el archivo Web.config.
El módulo de inicio automático usa el valor del parámetro relativeVirtualPath para cargar un servicio. El siguiente fragmento de configuración procede de un archivo Web.config con los valores relativeVirtualPath configurados para dos servicios. El parámetro relativeVirtualPath de un servicio es la ruta de acceso al servicio relativa a la aplicación que contiene el servicio.
// a sample Web.config fragment with two services configured to use the auto-start feature. <Microsoft.ProcessServer.Hosting> <serviceAutoStart> <add relativeVirtualPath =”/Calendar/Appointments.xamlx” > <add relativeVirtualPath =”/BookStore/ShoppingCart.svc” > </serviceAutoStart> </Microsoft.ProcessServer.Hosting>
Sugerencia La configuración de inicio automático para servicios se almacena en el archivo Web.config y la configuración del inicio automático para aplicaciones y grupos de aplicaciones se almacena en el archivo ApplicationHost.config.
Configuración del inicio automático
Puede usar las extensiones o los cmdlets del Administrador de IIS que proporciona AppFabric para configurar la característica inicio automático de un servicio WCF o WF. Para obtener instrucciones detalladas acerca de la configuración de la característica inicio automático, vea los temas Configuración del inicio automático mediante el Administrador de IIS y Configuración del inicio automático mediante cmdlets de Windows Server AppFabric de la sección Configuración del inicio automático.
Nota
Si la característica inicio automático está habilitada para un servicio, IIS pasará por alto la configuración de Tiempo de espera de inactividad en el grupo de aplicaciones y en la aplicación que usa el grupo de aplicaciones. El proceso trabajador asociado con el grupo de aplicaciones permanecerá en memoria aunque este último esté inactivo más tiempo del especificado en el valor Tiempo de espera de inactividad.
Advertencia |
---|
Si el código de inicialización no se escribe correctamente para un servicio y la inicialización lleva mucho tiempo, es posible que caduque el período de tiempo de inicio de IIS y se cierre el proceso en su estado actual. Una buena decisión de diseño sería usar varios subprocesos desde el código de inicialización para el servicio si se ejecuta en equipos con más de una CPU. |
Vea también
Conceptos
Configuración del inicio automático
2011-12-05