2010-12-09 96 views
0

我有一個小的.NET控制檯應用程序運行在收集RFID標籤信息的Windows CE 5設備上。當讀取每個標籤時,它將相關數據寫入位於Windows 7機器上的遠程消息隊列。該隊列是私人的,所以我明確地訪問它,這是我理解的方式來做到這一點。這是事務性的,雖然我不相信這個問題是相關的,因爲我相信SendMsg上的默認是自動的。當然,我可能是錯的。MSMQ發送消息從Windows CE 5到Windows 7

使用(VAR myQueue中=新的MessageQueue( 「FORMATNAME:直接= OS:w7machinename \私人$ \標籤」)){ 嘗試 { myQueue.Send(newTag); (Exception ex) { } Console.WriteLine(ex.Message); } }

如果我運行該程序不會引發異常。出於所有意圖和目的,它似乎已將數據寫入隊列。但是,如果我使用QueueExplorer查看隊列,則隊列中不會有消息。如果運行後,我去我的Win CE 5設備DOS提示符,並做msmqadm枚舉隊列,我看到它知道隊列,它表明它是私人的,遠程和0 msg和0字節的非活動。

我在其他文章中看到,更改隊列上的權限並沒有什麼區別,但是對此的一些澄清是很好的。還有人提到了防火牆和端口,但我對這個問題的答案有些困惑。

我希望這是足夠的信息讓別人看到我的問題/我的方式錯誤,並提前感謝任何人的幫助或指針。

關於源代碼格式的道歉。 Registers Kindo Malay

回答

1

好了很多玩過後,我已經實現了一些東西。

OK在一般級別上,遠程隊列上的消息不會出現,也不會單獨指向原始計算機上的消息發送,即出現錯誤,除非該隊列具有匿名用戶發送權限消息並取得所有權。我不確定是否在發送消息之外還有其他選項允許消息顯示。此外,我想我需要做更多的研究和/或就如何在生產環境中使用權限提出建議。

另外由於我假設MSDTC沒有運行,隊列不能是事務性的。

我也在Windows CE設備中看到的是,雖然msmqadm枚舉隊列實際上列出了遠程隊列,但它無法確定是否有任何消息在其中。

所以我們是......我希望這可以幫助別人。