这是我第一次使用此消息传递库并使用一些示例代码来实现它。我第一次运行它它完美地工作但我突然停止了代码,因为我的解析方法似乎是错误的。因此,当我重新启动它时,代码会冻结在以下行:
message = q.Receive()
消息队列是否可能已损坏或有什么问题?我检查了服务器管理器,看起来队列仍然存在,并且消息数量= 1。 这是我的其余代码:
If MessageQueue.Exists(".\private$\TwitterQueue") Then
q = New MessageQueue(".\private$\TwitterQueue")
Else
'GS - If there is no queue then we're done here
Console.WriteLine("Queue has not been created!")
Return
End If
Try
While True
'GS - Try and pull back the next message
Dim message As Message
Try
message = q.Receive()
message.Formatter = New XmlMessageFormatter(New [String]() {"System.String"})
ProcessMessage(message)
Catch
end try
End While
编辑:
如何创建队列:
Dim q As MessageQueue = If((MessageQueue.Exists(".\private$\TwitterQueue")), New MessageQueue(".\private$\TwitterQueue"), MessageQueue.Create(".\private$\TwitterQueue"))
以及如何使用它:
Dim msg As New Message(responseData)
q.Send(msg)
并检查它是否是交易性的;
If q.Transactional = True Then
Thread.Sleep(2000)
End If
并且不是。
答案 0 :(得分:0)
如果您尝试从后面的代码创建队列,您可以尝试设置权限
If MessageQueue.Exists(".\private$\TwitterQueue") Then
q = New MessageQueue(".\private$\TwitterQueue")
q.SetPermissions("Everyone", MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow)
Else
'GS - If there is no queue then we're done here
Console.WriteLine("Queue has not been created!")
Return
End If
如果仍然无法接收队列,我建议手动创建队列。