Procedura: scambiare messaggi in coda con endpoint WCF
Le code garantiscono una messaggistica affidabile tra un client e un servizio Windows Communication Foundation (WCF), anche se il servizio non è disponibile al momento della comunicazione. Nelle procedure seguenti viene spiegato come assicurare una comunicazione durevole tra un client e un servizio utilizzando l'associazione in coda standard in caso di implementazione del servizio WCF.
In questa sezione viene spiegato come utilizzare NetMsmqBinding per la comunicazione in coda tra un client WCF e un servizio WCF.
Per utilizzare l'accodamento in un servizio WCF
Definire un contratto di servizio utilizzando un'interfaccia contrassegnata con ServiceContractAttribute.
Contrassegnare con OperationContractAttribute le operazioni che nell'interfaccia fanno parte del contratto di servizio e specificare che sono unidirezionali dal momento che non viene restituita alcuna risposta al metodo. Nel codice seguente sono contenuti un esempio di contratto di servizio semplice e la relativa definizione di operazione.
Quando il contratto di servizio passa tipi definiti dall'utente, è necessario definire contratti dati per tali tipi. Nel codice seguente è illustrato un esempio di contratto dati. Si noti che la classe che definisce il contratto dati definisce anche un certo numero di metodi. Questi non vengono considerati parte del contratto dati. Solo i membri che sono dichiarati con l'attributo DataMember fanno parte del contratto dati.
Implementare i metodi del contratto di servizio definiti nell'interfaccia in una classe.
Creare una coda transazionale utilizzando System.Messaging. In alternativa è possibile scegliere di creare la coda mediante la console MMC (Microsoft Management Console) MSMQ. In tal caso, avere cura di creare una coda transazionale.
Definire un ServiceEndpoint nella configurazione che specifichi l'indirizzo del servizio e utilizzi l'associazione NetMsmqBinding standard. Per ulteriori informazioni sull'utilizzo della configurazione di WCF, vedere Configurazione di applicazioni Windows Communication Foundation.
Creare un host per il servizio OrderProcessing utilizzando l'elemento ServiceHost che legge i messaggi dalla coda e li elabora.
Aprire il host del servizio per rendere disponibile il servizio.
Chiudere l'host del servizio.
Per creare un client per il servizio in coda
Creare il client WCF utilizzando lo strumento Svcutil.exe.
Definire un ServiceEndpoint nella configurazione che specifichi l'indirizzo e utilizzi l'associazione NetMsmqBinding standard.
Creare un ambito di transazione da scrivere nella coda transazionale.
Chiamare l'operazione della calcolatrice.
Chiudere il client WCF.