Compartir a través de


Hospedaje web de una aplicación en cola

El Servicio de activación de procesos de Windows (WAS) administra la activación y duración de los procesos de trabajo que contienen aplicaciones que hospedan servicios de Windows Communication Foundation (WCF). El modelo de proceso WAS generaliza el modelo de proceso de IIS 6.0 para el servidor HTTP quitando la dependencia en HTTP. Esto permite que los servicios WCF usen protocolos HTTP y no HTTP, como net.msmq y msmq.formatname, en un entorno de hospedaje que admita la activación basada en mensajes y ofrezca la capacidad de hospedar un gran número de aplicaciones en un equipo determinado.

WAS incluye un servicio de activación de Message Queuing (MSMQ) que activa una aplicación en cola cuando hay uno o más mensajes en una de las colas que la aplicación usa. El servicio de activación MSMQ es un servicio NT que se inicia automáticamente de forma predeterminada.

Para obtener más información sobre WAS y sus ventajas, consulte Hospedaje en el servicio de activación de procesos de Windows. Para obtener más información sobre MSMQ, consulte Información general sobre colas.

Direccionamiento de la cola en WAS

Las aplicaciones WAS tienen direcciones de identificador uniforme de recursos (URI). Las direcciones de aplicación tienen dos partes: un prefijo de URI base y una dirección relativa (ruta de acceso) específica de la aplicación. Estas dos partes proporcionan la dirección externa de una aplicación cuando se unen. El prefijo de URI base se construye a partir del enlace de sitio y se usa para todas las aplicaciones del sitio, por ejemplo, "net.msmq://localhost", "msmq.formatname://localhost" o "net.tcp://localhost". A continuación, las direcciones de aplicación se construyen tomando fragmentos de ruta de acceso específicos de la aplicación (como "/applicationOne") y anexarlos al prefijo de URI base para llegar al URI de aplicación completo, por ejemplo, "net.msmq://localhost/applicationOne".

El servicio de activación de MSMQ usa el URI de la aplicación para identificar la cola que el servicio de activación de MSMQ debe supervisar en busca de mensajes. Cuando el servicio de activación MSMQ se inicia, enumera todas las colas privadas y públicas del equipo que está configurado para recibir y las supervisa para los mensajes. Cada 10 minutos, el servicio de activación de MSMQ actualiza la lista de colas que supervisar. Cuando se encuentra un mensaje en una cola, el servicio de activación coincide el nombre de la cola al URI de la aplicación correspondiente más largo para el enlace net.msmq y activa la aplicación.

Nota:

La aplicación que se está activando debe coincidir (coincidencia más larga) con el prefijo del nombre de la cola.

Por ejemplo, un nombre de cola es: msmqWebHost/orderProcessing/service.svc. Si Application 1 tiene un directorio virtual /msmqWebHost/orderProcessing con un service.svc en él y Application 2 tiene un directorio virtual /msmqWebHost con orderProcessing.svc en él, se activa la aplicación 1. Si se elimina la aplicación 1, se activa la aplicación 2.

Nota:

Cuando se crea una cola, los mensajes enviados a ella no activan una aplicación hasta que el servicio de activación de MSMQ actualiza la lista de colas, que es, como máximo, 10 minutos a partir del momento en que se creó la cola. Al reiniciar el servicio de activación también se actualiza la lista de colas.

El efecto de las colas privadas y públicas en Direccionamiento

El servicio de activación de MSMQ no distingue entre la supervisión de colas pública y privada. Como tal, no puede tener colas públicas y privadas con el mismo nombre. Si tiene, una aplicación hospedada en Web se puede activar al leer de cualquiera de las colas.

Configuración de la cola para la activación

El servicio de activación MSMQ se ejecuta como SERVICIO DE RED. Es el servicio que supervisa las colas para activar aplicaciones. Para que active las aplicaciones desde la cola, la cola debe proporcionar acceso al SERVICIO DE RED para ejecutar el método Peek para los mensajes en su lista de control de acceso (ACL).

Mensajería envenenada

El manejo de mensajes envenenados en WCF es controlado por el canal, que no solo detecta que un mensaje está envenenado, sino que selecciona una disposición basada en la configuración del usuario. Como resultado, solo hay un mensaje único en la cola. La aplicación hospedada en Web anula las ocasiones sucesivas y el mensaje se mueve a una cola de reintento. En un momento determinado por el retraso del ciclo de reintento, el mensaje se mueve de la cola de reintentos a la cola principal para volver a intentarlo. Pero esto requiere que el canal en cola esté activo. Si la aplicación es reciclada por WAS, entonces el mensaje permanece en la cola de reintento hasta que otro mensaje llega a la cola principal para activar la aplicación en espera. La solución alternativa en este caso es mover el mensaje manualmente de la cola de reintento a la cola principal para reactivar la aplicación.

Subcola y advertencia de cola de sistema

Una aplicación hospedada en WAS no se puede activar basándose en mensajes en una cola de sistema, como la cola de mensajes no enviados para todo el sistema o subcolas, como subcolas dudosas. Esta es una limitación para esta versión del producto.

Consulte también