将 MSMQ 用作 RPC 传输

RPC 子系统支持在同步和异步模式下使用 MSMQ 作为传输。

同步模式使用传统的远程过程调用。 这些调用使用已知终结点和消息队列传输 (ncadg_mq)作为传输协议。 在同步模式下,远程过程可以具有 [ in] 和 [ out] 参数,并且可以使用标准 RPC 安全服务。 RPC 子系统为包含 [out] 参数的远程调用创建回复队列。 同步模式适用于客户端需要从服务器接收数据的应用程序。 此模式main限制是,与传统的远程过程调用一样,客户端和服务器必须在调用期间保持运行状态。

异步模式允许客户端应用程序调用服务器并立即返回,而不考虑服务器应用程序或服务器计算机的状态。 它还使 MSMQ 功能的子集可用于管理消息队列和信息流。 RpcBindingSetOption 函数允许你控制服务质量、调用优先级、日记、安全性和服务器进程队列的生存期。 RpcServerUseProtseqEpEx 函数允许指定服务器进程队列的属性,例如队列持久性、身份验证和加密。

像实现同步 MSMQ 一样实现异步 MSMQ。 必须使用已知终结点,并定义要 ncadg_mq的传输协议。 在 IDL 文件中,将 message 属性应用于使用异步消息队列的函数。 请注意,消息函数只能有 [in] 参数。