2010-12-09 10 views
0

Ich habe eine kleine .NET-Konsolen-App, die auf einem Windows CE 5-Gerät läuft, das RFID-Tag-Informationen sammelt. Wenn jedes Tag gelesen wird, schreibt es die relevanten Daten in eine entfernte Nachrichtenwarteschlange, die auf einem Windows 7-Rechner sitzt. Die Warteschlange ist privat, also greife ich explizit darauf zu, was ich verstehe. Es ist transaktional, obwohl ich nicht glaube, dass das im Kontext des Problems relevant ist, da ich glaube, dass der Standardwert für SendMsg Automatisch ist. Ich könnte natürlich falsch liegen.MSMQ Eine Nachricht von Windows CE 5 an Windows 7 senden

mit (var myQueue = new Message ("Formatname: Direkt = OS: w7machinename \ private $ \ Tags")) { versuchen { myQueue.Send (NEWTAG); } catch (Ausnahme ex) { Console.WriteLine (ex.Message); } }

Wenn ich das Programm ausführen keine Ausnahme ausgelöst wird. In jeder Hinsicht scheint es die Daten in die Warteschlange geschrieben zu haben. Wenn ich jedoch die Warteschlange mit QueueExplorer betrachte, sind keine Nachrichten in der Warteschlange. Wenn ich nach dem Ausführen gehe ich auf meine Win CE 5 Gerät Dos Eingabeaufforderung und msmqadm enum Warteschlangen Ich sehe, dass es über die Warteschlange weiß, es heißt es ist privat, Remote und inaktiv mit 0 msg und 0 Bytes.

Ich habe in anderen Posts gesehen, dass das Ändern der Berechtigungen in der Warteschlange keinen Unterschied macht, aber eine Klarstellung wäre gut. Auch jemand erwähnte Firewall und Ports, aber ich war etwas verwirrt von der Antwort.

Ich hoffe, dies ist genug Informationen für jemanden, mein Problem/Fehler meiner Wege zu sehen und danke im Voraus für jede Hilfe oder Hinweise.

Entschuldigung für die Formatierung des Quellcodes. Mit freundlichen Grüßen Kindo Malay

Antwort

1

Ok nach viel Herumspielen habe ich ein paar Sachen realisiert.

OK Auf einer allgemeinen Ebene werden die Nachrichten in der fernen Warteschlange weder angezeigt, noch werden sie beim Senden der Nachricht auf dem Ursprungscomputer als fehlerhaft erkannt, es sei denn, die Warteschlange hat die Rechte für die anonymen Benutzer zum Senden Nachricht UND Besitz übernehmen. Ich bin mir nicht sicher, ob darüber hinaus Nachricht senden, welche anderen Optionen die Nachricht erscheinen lassen würde. Außerdem denke ich, dass ich mehr Forschung betreiben und/oder beraten muss, wie das Genehmigen in einer Produktionsumgebung funktioniert.

Auch ich nehme an, MSDTC nicht ausgeführt die Warteschlange kann nicht transaktional sein.

Was ich auch auf dem Windows CE-Gerät sehe, ist, dass msmqadm enum queues tatsächlich die ferne Warteschlange auflistet, aber nicht feststellen kann, ob irgendwelche Nachrichten darin enthalten sind.

Also da sind wir ... ich hoffe das hilft jemand anderem.