【发布时间】: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