【问题标题】:Sending messages to MSMQ using a WCF service使用 WCF 服务向 MSMQ 发送消息
【发布时间】:2009-07-20 16:26:15
【问题描述】:

我创建了一个 WCF 服务来向 MSMQ 发送消息,我可以让它运行,看起来消息已发送,但在查看队列时它不存在。我已经验证,队列不是事务队列。安全是开放的,每个人都可以发送消息,但我想知道是否还有其他地方可以设置安全?这是我正在使用的代码。

Dim mq As MessageQueue
Dim msg As Message
Dim queueName As String = "webdevbvm.labsafety.com\emailsubscriptions"

Try
   msg = New Message("Test")
   msg.Priority = MessagePriority.Highest

   If (MessageQueue.Exists(queueName)) Then
       mq = New MessageQueue(queueName)
   msg.ResponseQueue = mq
   msg.UseJournalQueue = True
   msg.Label = "Test Message"
   msg.Body = "This is only a test"
   mq.Send(msg)
   Console.WriteLine("Message sent.")
   End If
Catch ex As MessageQueueException
   Console.WriteLine("MSMQ Error: " + ex.ToString())
Catch ex As Exception
   Console.WriteLine("Error: " + ex.ToString())
Finally
   mq.Close()
End Try

我没有收到任何错误,但我确实看到了来自运行程序的机器的传出队列中的消息。它显示队列存在,如果我将队列名称更改为不存在的队列名称,它不会进入 IF 语句,所以我知道它看到队列只是没有发送文件。如果它有助于我在笔记本电脑上本地运行程序,它发送的队列也在 Windows 2003 服务器上。

【问题讨论】:

  • 您是否看到“已发送消息”。从你的 console.writeline 命令?
  • 如果队列不存在怎么办? ru-roh……轰隆隆。 (psst:添加检查以创建队列,如果它不存在或作为错误处理)。
  • 删除了 WCF 相关标签

标签: msmq


【解决方案1】:

在我看来,这不像 WCF 服务 - 似乎您正在使用基本的 System.Net.Messaging API 向您的队列发送消息......

查看其中一些链接,了解如何使用 WCF 向 MSMQ 发送消息:

马克

【讨论】:

  • 为什么 wcf 服务会直接将消息放入 MSMQ?
  • 为什么不从 WCF 服务发送它使用 WCF ??
  • 这就是我想要弄清楚的。我忘了在帖子中说我是 WCF 服务和 MSMQ 的新手。我会查看这些文章,看看会发生什么。谢谢
  • @Robert:好的,看看这些资源对你是否有意义,然后回答你的问题,如果没有,再回来问;-)
【解决方案2】:

感谢 marc 的回复,但我知道需要做什么。基本上我使用了错误的队列名称。我在队列名称前没有“FormatName:DIRECT=OS:”。一旦我说它很好去。再次感谢。

罗伯特

【讨论】:

  • 罗伯特,如果这是答案,那么你应该接受它作为答案。
猜你喜欢
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-27
  • 2011-12-01
  • 2021-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多