我正在尝试在同一域内的两台不同机器上的两个服务之间设置 msmq 通信。
机器是主要 - 次要情况。
我需要能够从主节点发送和清除,并从辅助节点接收
我似乎找不到允许这样做的设置。我有一个设置,其中队列存在于辅助节点上,主节点可以发送,辅助节点可以接收,但我无法根据需要从主节点清除。我相信这是由于队列是私人和远程的。
所以我试图扭转局面。我将队列放在主队列上,但后来我无法发送到私有本地队列,所以我将它们公开,现在我无法让辅助队列找到远程公共队列。
if (!MessageQueue.Exists(queueName))
{
//log they don't exist and exit
throw new Exception("One or more of the required queues do not exist");
}
syncQ = new MessageQueue(queueName){Formatter = new XmlMessageFormatter(new Type[] {typeof (String)})};
if (machineState == MachineState.Primary)
{
syncQ.SetPermissions(ASPConfiguration.SyncUser, MessageQueueAccessRights.FullControl, AccessControlEntryType.Allow);
syncQ.Purge();
}
主要 = ".\nw"
次要 = "FormatName:Direct=OS:CACTEST-WS-D\nw"
只要我能做我需要的事情,队列对我来说是私人的还是公共的并不重要。
谢谢您的帮助。