我在运行 Windows Server 2003 的服务器中创建了一个消息队列,并创建了一个能够发送消息的客户端程序,但我无法将它们拉回。要发送消息,我使用以下代码(请注意,我使用的是事务队列):
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() 调用中,我遇到了异常。我发现了很多类似的问题,我发现这篇文章有三种可能的解决方案,但没有一个对我有用。我禁用了服务器上的防火墙,在注册表中创建了 DWORD 值,并且提供的解决方案之一似乎是特定于 Windows Server 2008。任何人都可以帮助我从 Windows Server 2003 中的 MSMQ 进行远程调用吗?