2010-12-09 51 views
0

J'ai une petite application de console .NET fonctionnant sur un périphérique Windows CE 5 qui rassemble des informations d'étiquette RFID. Au fur et à mesure que chaque étiquette est lue, elle écrit les données pertinentes dans une file d'attente de messages distante située sur une machine Windows 7. La file d'attente est privée, donc j'y accède explicitement, c'est pourquoi je comprends la façon de le faire. Il est transactionnel, bien que je ne crois pas que cela soit pertinent dans le contexte du problème, car je crois que la valeur par défaut sur SendMsg est Automatique. Je peux me tromper, bien sûr.MSMQ Envoyer un message de Windows CE 5 à Windows 7

en utilisant (var myQueue = new MessageQueue ("FormatName: Direct = OS: w7machinename \ private $ \ tags")) { essayer { myQueue.Send (newTag); } catch (Exception ex) { Console.WriteLine (ex.Message); } }

Si je cours le programme aucune exception n'est levée. À toutes fins utiles, il semble avoir écrit les données dans la file d'attente. Si toutefois je regarde la file d'attente en utilisant QueueExplorer, il n'y a pas de messages dans la file d'attente. Si après l'exécution je vais à mon invite DOS de périphérique de Win CE 5 et fais les files d'attente de msmqadm enum je vois qu'il sait au sujet de la queue, il indique qu'il est privé, à distance et inactif avec 0 msg et 0 bytes.

J'ai vu dans d'autres articles que changer les permissions sur la file d'attente ne fait aucune différence, mais quelques précisions sur ce point seraient bonnes. De plus, quelqu'un a mentionné le pare-feu et les ports, mais j'ai trouvé la réponse un peu confuse.

J'espère que c'est assez d'informations pour quelqu'un pour voir mon problème/erreur de mes manières et remercier quiconque d'avance pour toute aide ou pointeurs.

Toutes nos excuses pour le formatage sur le code source. Cordialement Kindo Malay

Répondre

1

Ok après avoir beaucoup joué, j'ai réalisé quelques trucs.

OK D'une manière générale, les messages de la file d'attente distante n'apparaîtront pas, et ils ne feront pas l'envoi d'un message sur la machine d'origine à moins que la file ait des droits pour les utilisateurs anonymes. Message ET Prendre possession. Je ne suis pas sûr si au-delà Send message quelles autres options permettraient au message d'apparaître. Aussi, je pense que je vais devoir faire plus de recherches et/ou prendre conseil sur la façon dont l'autorisation fonctionnera dans un environnement de production.

Également en raison je suppose à MSDTC ne pas exécuter la file d'attente ne peut pas être transactionnel. Ce que je vois également dans le périphérique Windows CE est que, bien que les files d'attente enum msmqadm répertorient réellement la file d'attente éloignée, elle ne peut pas déterminer si des messages s'y trouvent.

Alors voilà ... J'espère que cela aide quelqu'un d'autre.