Le service WCF ne démarre pas automatiquement lorsque des messages sont disponibles via MSMQ

Cet article vous aide à résoudre le problème qui se produit lorsque le service Windows Communication Foundation (WCF) ne démarre pas automatiquement en raison de messages en attente dans la file d’attente de Message Queuing (MSMQ).

Version du produit d’origine :   Internet Information Services 8,0, Internet Information Services 8,5
Numéro de la base de connaissances initiale :   2974327

Symptômes

Un pool d’applications IIS héberge deux services WCF distincts où l’un utilise la net.msmq liaison et l’autre utilise la msmq.formatname liaison. Lorsque des messages vers le service WCF qui utilisent la net.msmq liaison sont en attente dans la file d’attente MSMQ, le service WCF ne démarre pas automatiquement.

Cause

Il s’agit du comportement par défaut. WAS est conçu de sorte que lorsqu’un seul pool d’applications IIS dispose de plusieurs services WCF qui utilisent des types de liaisons MSMQ mixtes, le msmq.formatname service est prioritaire et l’indicateur de redémarrage du net.msmq service est défini sur non. Par conséquent, seul le service qui utilise msmq.formatname démarre automatiquement le processus W3wp pour ce pool d’applications lorsque les messages deviennent disponibles dans la file d’attente MSMQ.

Résolution

La solution de contournement consiste à utiliser deux pools d’applications distincts pour vos services WCF, en séparant les deux liaisons MSMQ différentes.