Använda MSMQ som en RPC-transport
RPC-undersystemet stöder användning av MSMQ som en transport i synkrona och asynkrona lägen.
Synkront läge använder konventionella fjärrproceduranrop. Dessa anrop använder välkända slutpunkter och meddelandekötransporten, ncadg_mq, som transportprotokoll. I synkront läge kan fjärrprocedurerna ha parametrarna [ i] och [ ut] och kan använda RPC-standardsäkerhetstjänster. RPC-undersystemet skapar en svarskö för fjärranrop som innehåller [out] parametrar. Synkront läge är användbart för program där klienten behöver ta emot data från servern. Den största begränsningen i det här läget är att både klienten och servern måste köras och fortsätta köras under hela anropet, precis som med konventionella fjärrproceduranrop.
Med asynkront läge kan klientprogram göra anrop till servern och återgå omedelbart, oavsett serverprogrammets eller serverdatorns tillstånd. Det gör också en delmängd av MSMQ-funktioner tillgängliga för hantering av meddelandeköer och informationsflöde. Med funktionen RpcBindingSetOption kan du styra tjänstens kvalitet, samtalsprioritet, journaler, säkerhet och serverns processkös livslängd. Med funktionen RpcServerUseProtseqEpEx kan du ange attributen för serverprocesskön, till exempel köpersistens, autentisering och kryptering.
Du implementerar asynkron MSMQ på samma sätt som med synkron MSMQ. Du måste använda välkända slutpunkter och definiera att transportprotokollet ska vara ncadg_mq. I din IDL-fil tillämpar du -meddelande-attributet på de funktioner som använder asynkrona meddelandeköer. Observera att meddelandefunktioner endast kan ha [i] parametrar.