我在运行Windows Server 2003的服务器中创建了一个Message Queue,并创建了一个能够发送消息的客户端程序,但是我无法将它们拉回来。要发送消息,我使用以下代码(请注意我使用的是事务性队列):
MessageQueueTransaction transaction = new MessageQueueTransaction();
transaction.Begin();
messageQueue.Send("Hello MSMQ!", "Title", transaction);
transaction.Commit();
transaction.Dispose();
要拉出我尝试过的消息,但没有成功:
MessageQueueTransaction transaction = new MessageQueueTransaction();
try
{
transaction.Begin();
MessageQueue queue = new MessageQueue(QUEUE_NAME);
Message msg = queue.Receive(new TimeSpan(0, 0, 5), transaction);
msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(String) });
Console.WriteLine(msg.Label + " - " + msg.Body);
transaction.Commit();
}
catch (Exception e)
{
transaction.Abort();
Console.WriteLine(e.Message);
}
在queue.Receive()调用中我得到一个异常。我发现了很多类似的问题,我发现this article有三个可能的解决方案,但没有一个能为我工作。我在服务器上禁用了防火墙,在注册表中创建了DWORD值,并且提供的解决方案之一似乎特定于Windows Server 2008.任何人都可以帮助我从Windows Server 2003中的MSMQ进行远程调用吗?