无法通过MSMQ从Windows移动设备发送消息

时间:2009-06-01 17:46:29

标签: .net windows-mobile msmq

我正在尝试使用MSMQ从移动设备向服务器上的远程专用队列发送消息。

发生了什么事? 移动代码发送消息时,我没有遇到任何错误。如果我查看移动设备上的msmq文件夹,它确实为它发送的远程创建了一个.oq(出站队列)文件。

我在队列的formatname中使用Direct = TCP和IP地址。我已经验证了相同的代码在我的桌面上没有问题。消息正确传递。

我不相信代码是问题。也许我遗漏了一些必须在移动环境中完成的事情,以允许消息离开队列并传递到服务器。

我已经验证或已完成排查的事项:

  1. 我已经确认使用验证从visadm报告的所有内容都是可以接受的。
  2. 为MSMQ启用了二进制文件。
  3. 日志报告MSMQ已启动且没有错误。
  4. 所有SDK证书都安装在设备上。
  5. 发送出站邮件时会创建.oq文件。
  6. 邮件上启用了日记和死信。 (服务器没有报告任何无法送达的内容 - 我不相信它会连接)
  7. 网络处于活动状态且有效(我可以通过浏览器访问服务器上托管的网页)
  8. 服务器MSMQ有效(我可以使用来自桌面的相同代码并传递消息)
  9. 通过visadm,状态在移动设备上正确报告MSMQ。
  10. 我希望有人可能熟悉Windows Mobile上的MSMQ,他可能会就我未检查或启用的内容给出一些建议。

    我在设备上使用.Net CF 3.5并在C#中编码,但正如我所说,代码似乎不是问题。

    提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

似乎问题是服务器使用了Transactional Message Queue。一旦我添加; XACTONLY到我的消息队列字符串的末尾并更改了Send方法以使用System.Messaging.MessageQueueTransactionType.Single它工作。您会认为它会引发错误或某些事情让您知道这是必要的。