2009-06-10 5 views
2

je les déchets suivants du code pour tester les accusés de réception MSMQ: «\ private $ \ queuename »MSMQ: Remerciements non retournés lors de la livraison à une file d'attente à distance

static void Main(string[] args) 
    { 
     string queuePath = args[0]; 
     string ackQueuePath = args[1]; 
     MessageQueue queue = new MessageQueue(queuePath); 
     MessageQueue ackQueue = new MessageQueue(ackQueuePath); 
     Message message = new Message("Body text"); 
     message.Label = "test"; 
     message.Recoverable = true; 
     message.TimeToReachQueue = new TimeSpan(0, 1, 0); 
     message.TimeToBeReceived = new TimeSpan(1, 0, 0); 
     message.AdministrationQueue = ackQueue; 
     message.AcknowledgeType = AcknowledgeTypes.FullReachQueue; 
     queue.Send(message, MessageQueueTransactionType.Single); 
    } 

Si les deux queuePath et ackQueuePath sont locaux, à savoir format, je reçois le message "test" dans la file d'attente principale et un accusé de réception reach-queue dans la file d'attente d'administration comme prévu. Cependant, si filePath pointe vers une file d'attente distante, c'est-à-dire le format "FormatName: DIRECT = OS: MACHINENAME \ private $ \ queuename", j'obtiens le message "test" dans cette file d'attente distante .

Je n'ai rien vu indiquant que les accusés de réception ne peuvent pas être renvoyés à partir de files d'attente distantes, donc je présume qu'il y a un problème avec mon code ou mon environnement. Des idées?

(Les deux machines sont Windows 2003.)

Répondre

2

Pour référence, cela a fonctionné correctement après avoir réinstallé message Mise en attente sur les deux machines.

+3

qui suce vraiment ... dit beaucoup sur MSMQ. J'ai commencé à l'utiliser il y a quelques semaines et j'ai encore des milliers de questions pour lesquelles ça ne marche parfois pas ... –

4

@LievenCardoen & @marijne.

Vous ne savez pas si c'était votre problème d'origine, mais la file d'attente de reconnaissance ne doit pas être transactionnelle. Si tel est le cas, vous ne recevrez aucun accusé de réception et aucun message d'erreur ne vous le signalera. J'ai dû apprendre à la dure :)

Vive Johan

Questions connexes