Alojamiento web de una aplicación en cola

El Servicio de activación de procesos de Windows (WAS) administra la activación y la duración de los procesos de trabajo que contienen aplicaciones que hospedan los servicios de Windows Communication Foundation (WCF). El modelo de proceso de WAS generaliza el proceso IIS 6.0 para el servidor HTTP mediante la eliminación de la dependencia en HTTP. Esto permite a los servicios WCF utilizar HTTP y protocolos distintos de HTTP, como net.msmq y msmq.formatname, en un entorno host que admite la activación basada en mensaje y ofrece 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 Servicio de activación de procesos de Windows. Para obtener más información sobre MSMQ, consulte Información general de colas.

Direccionamiento de la cola en WAS

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

El servicio de activación MSMQ utiliza el URI de la aplicación para coincidir con la cola que el servicio de activación MSMQ debe supervisar para los 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 MSMQ actualiza la lista de colas que tiene 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 la Aplicación 1 tiene un directorio virtual /msmqWebHost/orderProcessing con un service.svc bajo el mismo y la Aplicación 2 tiene un directorio virtual /msmqWebHost con un orderProcessing.svc debajo de é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 este no activan una aplicación hasta que el servicio de activación MSMQ actualice la lista de la cola, lo cual tarda, como máximo,10 minutos desde el 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 MSMQ no distingue entre supervisión de colas privadas y públicas. 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 las 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 dudosa

El canal, que no solo detecta que un mensaje es dudoso, sino que selecciona una disposición basada en la configuración del usuario, controla los mensajes dudosos en WCF. 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 punto dictado por el retraso del ciclo de reintento, el mensaje se mueve desde la cola de reintento a la cola principal para intentarlo de nuevo. Pero esto exige que el al canal en cola esté activo. Si WAS recicla la aplicación, a continuación, el mensaje permanece en la cola de reintento hasta que otro mensaje llegue a la cola principal para activar la aplicación en cola. La solución alternativa en este caso es mover de nuevo manualmente el mensaje desde 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. Esto supone una limitación para esta versión del producto.

Consulte también