我創建了一個WCF服務來向MSMQ發送消息,我可以讓它運行並且它看起來像消息已發送,但在查看隊列時它不在那裏。我已驗證,隊列不是事務性隊列。安全性是開放的,以便每個人都可以發送消息,但我想知道是否有其他地方可以設置安全性?這是我使用的代碼。使用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命令? – 2009-07-20 19:13:05
如果隊列不存在會發生什麼? ru-roh ......繁榮。 (psst:添加一個檢查來創建隊列,如果它不存在或將其作爲錯誤處理)。 – 2009-07-29 05:19:34
刪除了WCF相關標籤 – SteveC 2010-07-06 16:41:10