Comment : échanger des messages en file d'attente avec des points de terminaison WCF

Les files d'attente garantissent une messagerie fiable entre un client et un service Windows Communication Foundation (WCF), même si le service n'est pas disponible au moment de la communication. Les procédures ci-dessous indiquent comment garantir une communication durable entre un client et un service en utilisant la liaison mise en file d'attente standard lors de l'implémentation du service WCF.

Cette section explique comment utiliser NetMsmqBinding pour la communication mise en file d'attente entre un client WCF et un service WCF.

Pour utiliser la mise en file d'attente dans un service WCF

  1. Définissez un contrat de service utilisant une interface marquée avec ServiceContractAttribute.

  2. Marquez les opérations dans l'interface qui font partie du contrat de service avec OperationContractAttribute et définissez-les comme unidirectionnelles car aucune réponse n'est retournée à la méthode. Le code ci-dessous fournit un exemple de contrat de service et sa définition d'opération.

  3. Lorsque le contrat de service passe des types définis par l'utilisateur, vous devez définir des contrats de données pour ces types. Le code ci-dessous illustre un exemple de contrat de données. (Notez que la classe qui définit ce contrat de données définit également plusieurs méthodes. Ces méthodes ne sont pas considérées comme des parties intégrantes du contrat de données. Seuls les membres déclarés avec l'attribut DataMember font partie du contrat de données.)

  4. Implémentez dans une classe les méthodes du contrat de service définies dans l'interface.

  5. Créez une file d'attente transactionnelle en utilisant System.Messaging. Vous pouvez éventuellement décider de créer la file d'attente à l'aide de la console MMC (Microsoft Management Console) MSMQ (Microsoft Message Queuing). Dans ce cas, assurez-vous de créer une file d'attente transactionnelle.

  6. Définissez un ServiceEndpoint dans la configuration qui spécifie l'adresse de service et utilise la liaison NetMsmqBinding standard. Pour plus d'informations sur l'utilisation de la configuration WCF, consultez Configuration d'applications Windows Communication Foundation.

  7. Créez un hôte pour le service OrderProcessing à l'aide de ServiceHost qui lit les messages de la file d'attente et les traite.

  8. Ouvrez l'hôte de service pour rendre le service disponible.

  9. Fermez l'hôte de service.

Pour créer un client pour le service mis en file d'attente

  1. Créez le client WCF à l'aide de l'outil Svcutil.exe.

  2. Définissez un ServiceEndpoint dans la configuration qui spécifie l'adresse et utilise la liaison NetMsmqBinding standard.

  3. Créez une étendue de transaction pour écrire dans la file d'attente transactionnelle.

  4. Appelez l'opération de la calculatrice.

  5. Fermez le client WCF.

Exemple

Voir aussi

Tâches

Comment : échanger des messages avec des points de terminaison WCF et des applications Message Queuing

Référence

NetMsmqBinding

Concepts

Mise en file d'attente dans WCF

Autres ressources

Transacted MSMQ Binding