使用 MSMQ 作為 RPC 傳輸
RPC 子系統支援使用 MSMQ 做為同步和非同步模式的傳輸。
同步模式使用傳統的遠端程序呼叫。 這些呼叫會使用已知的端點和訊息佇列傳輸 ,ncadg_mq作為傳輸通訊協定。 在同步模式中,您的遠端程式可以有 [ in] 和 [ out] 參數,而且可以使用標準 RPC 安全性服務。 RPC 子系統會為包含 [out] 參數的遠端呼叫建立回復佇列。 同步模式適用于用戶端需要從伺服器接收資料的應用程式。 此模式的主要限制在於,如同傳統的遠端程序呼叫,用戶端和伺服器都必須在呼叫期間執行並持續執行。
非同步模式可讓用戶端應用程式呼叫伺服器,並立即傳回,而不論伺服器應用程式或伺服器電腦的狀態為何。 它也會讓 MSMQ 功能的子集可用於管理訊息佇列和資訊流程。 RpcBindingSetOption函式可讓您控制服務品質、呼叫優先順序、日誌、安全性和伺服器進程佇列的存留期。 RpcServerUseProtseqEpEx 函式可讓您指定伺服器進程佇列的屬性,例如佇列持續性、驗證和加密。
您可以實作非同步 MSMQ,就像同步 MSMQ 一樣。 您必須使用已知的端點,並定義要 ncadg_mq的傳輸通訊協定。 在您的 IDL 檔案中,將訊息屬性套用至使用非同步 消息 佇列的函式。 請注意,訊息函式只能有 [in] 參數。