1

我在运行 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 进行远程调用吗?

4

0 回答 0