2010-07-07 6 views
0

Cela peut être quelque chose de terriblement évident, je viens de commencer avec nSB. Je vais essayer d'être aussi détaillé que possible. Commençons par le code:nServiceBus erreur MSMQ lors de l'abonnement à la file d'attente

Voici le code de configuration des terminaux: http://www.pastebin.ca/1896246

Et le app.config: http://www.pastebin.ca/1896249

est enfin là la sortie étant connecté quand je lance NServiceBus.Host.exe http://www.pastebin.ca/1896253

Étrangement le bus fonctionne toujours et peut recevoir des messages et de les traiter, comme je vois ici: http://www.pastebin.ca/1896257

La dernière chose qui me préoccupe est que je me répétais System.Messaging.MessageQueueException erreurs alors que le processus d'accueil est en cours d'exécution:

délai d'attente pour l'opération demandée a expiré

MessageQueueErrorCode: System.Messaging.MessageQueueErrorCode .IOTimeout

StackTrace: à System.Messaging.MessageQueue.ReceiveCurrent (timeout TimeSpan , l'action Int32, CursorHandle curseur, filtre MessagePropertyFilter, MessageQueueTransaction internalTransaction, MessageQueueTransactionType TransactionType)

+0

Ok, j'ai réalisé que dans ma configuration j'ai le même point de terminaison pour la source du message et le point de terminaison qui, je suppose, n'a pas de sens. Quand j'ai regardé l'échantillon Pub/Sub, j'ai vu que ce n'était pas la bonne façon de configurer. –

Répondre

2

Vous n'avez pas à vous soucier de ces exceptions MSMQ car ils sont internes à NServiceBus et sont avalés par le cadre.

+0

Très bien ouais je pensais que c'était peut-être simplement le résultat de l'ouverture d'une demande de message et d'attendre un délai avant d'en ouvrir un autre. C'est juste bizarre d'en voir autant dans le journal de débogage. –

1

de l'exception, il semble que vous effectuez une réception avec un délai d'attente. S'il n'y a pas de message à recevoir, MSMQ va finalement générer une exception lorsque le délai d'attente est atteint. Vous avez juste besoin d'attraper l'exception et de continuer si c'est un scénario attendu (c'est-à-dire aucun message dans la file d'attente). S'il y a TOUJOURS un message dans la file d'attente, je serais intéressé par l'endroit où le curseur pointe à ce moment-là.

Vive
John Breakwell

Questions connexes