Uso de MSMQ como transporte RPC

El subsistema RPC admite el uso de MSMQ como transporte en modos sincrónicos y asincrónicos.

El modo sincrónico usa llamadas a procedimientos remotos convencionales. Estas llamadas usan puntos de conexión conocidos y el transporte de cola de mensajes, ncadg_mq, como protocolo de transporte. En modo sincrónico, los procedimientos remotos pueden tener parámetros [ in] y [ out] y pueden usar los servicios de seguridad RPC estándar. El subsistema RPC crea una cola de respuesta para las llamadas remotas que contienen parámetros [out]. El modo sincrónico es útil para las aplicaciones en las que el cliente necesita recibir datos del servidor. La limitación principal de este modo es que, al igual que con las llamadas a procedimientos remotos convencionales, tanto el cliente como el servidor deben estar en ejecución y seguir ejecutándose mientras dure la llamada.

El modo asincrónico permite que las aplicaciones cliente realicen llamadas al servidor y devuelvan inmediatamente, independientemente del estado de la aplicación de servidor o del equipo servidor. También hace que un subconjunto de características de MSMQ esté disponible para administrar las colas de mensajes y el flujo de información. La función RpcBindingSetOption permite controlar la calidad del servicio, la prioridad de las llamadas, el registro en diario, la seguridad y la duración de la cola de procesos del servidor. La función RpcServerUseProtseqEpEx permite especificar atributos de la cola de procesos del servidor, como la persistencia de la cola, la autenticación y el cifrado.

Implemente MSMQ asincrónico como lo haría con MSMQ sincrónico. Debe usar puntos de conexión conocidos y definir el protocolo de transporte que se va a ncadg_mq. En el archivo IDL, aplique el atributo message a las funciones que usan colas de mensajes asincrónicas. Tenga en cuenta que las funciones de mensaje solo pueden tener parámetros [in].