gpt4 book ai didi

MSMQ - 此计算机上尚未安装消息队列

转载 作者:行者123 更新时间:2023-12-03 23:24:56 24 4
gpt4 key购买 nike

我编写了一个示例应用程序来写入开发服务器上的公共(public)和私有(private)队列。我的本地机器上没有安装消息队列。

我收到错误消息:此计算机上尚未安装消息队列。

错误在这一行:

MessageQueue.Exists(queueName)

这是完整的测试代码,所有已注释和未注释的私有(private)和公共(public)队列都会导致相同的错误。我在这里做错了什么?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Messaging;

namespace MsmqTest
{
public partial class Form1 : Form
{
//@"DIRECT=OS:devbox01\PRIVATE$\PrivateQueueDev";
//@"DIRECT=TCP:192.168.6.102\PRIVATE$\PrivateQueueDev";
private const string QueueName = @"DIRECT=TCP:192.168.6.102\PRIVATE$\PrivateQueueDev";


//@"DIRECT=OS:devbox01\PublicQueueDev";
//@"DIRECT=TCP:192.168.6.102\PublicQueueDev";
private const string QueueNamePublic = @"DIRECT=TCP:192.168.6.102\PublicQueueDev";

public Form1()
{
InitializeComponent();
}

private void Write_Click(object sender, EventArgs e)
{
MessageQueue msgQ;
string msgText = String.Format("Message: {0}", DateTime.Now);
try
{
msgQ = GetQ(QueueNamePublic);
msgQ.Send(msgText);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}

private void Read_Click(object sender, EventArgs e)
{

}

private MessageQueue GetQ(string queueName)
{
MessageQueue msgQ;

if(!MessageQueue.Exists(queueName))
{
try
{
msgQ = MessageQueue.Create(queueName);
}
catch (Exception ex)
{
throw new Exception("Error creating queue", ex);
}
}
else
{
try
{
msgQ = new MessageQueue(queueName);
}
catch (Exception ex)
{
throw new Exception("Error getting queue", ex);
}
}
return msgQ;
}

}
}

最佳答案

您需要 install MSMQ在所有想要参与消息传输和接收的机器上。在这种情况下,这包括发送机器,例如您的本地机器。

原因在于 MSMQ 使用的存储转发消息模式。

http://en.wikipedia.org/wiki/Store_and_forward

当您向服务器“发送”消息时实际发生的情况是:

  • 本地队列管理器将消息写入本地临时队列。
  • 本地队列管理器连接到远程队列管理器。
  • 消息被传送。
  • 远程队列管理器将消息写入远程队列。
  • 关于MSMQ - 此计算机上尚未安装消息队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798079/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com