【发布时间】:2015-05-27 08:22:53
【问题描述】:
我创建了一个函数来通过 MSMQ 发送消息,但在执行时出现异常。 下面是我的功能。
public void SendMessageToQueue(ChessQueue chessQueue)
{
MessageQueue queue = null;
Message m = null;
if (!MessageQueue.Exists(".\\Private$\\" + chessQueue.QueueName))
{
queue = new MessageQueue(".\\Private$\\chessqueue");
chessQueue.Messages = new List<MessageObject>();
chessQueue.Messages.Add(chessQueue.Message);
queue.Formatter = new BinaryMessageFormatter();
m = new Message();
m.Body = chessQueue;
}
else
{
queue = new MessageQueue(".\\Private$\\" + chessQueue.QueueName);
queue.Formatter = new BinaryMessageFormatter();
m = queue.Receive();
ChessQueue ExistingChessQueue = m.Body as ChessQueue;
ExistingChessQueue.Messages.Add(chessQueue.Message);
m.Body = ExistingChessQueue;
}
queue.Send(m);
// Getting Exception at this Line
}
例外:- 队列不存在或您没有足够的权限执行操作。
我也无法在计算机管理下打开消息队列的安全选项卡。 请参阅随附的屏幕截图。
我尝试在私有下手动创建消息队列,系统允许我这样做。见下文
下面是 mmc 跨度。
【问题讨论】:
-
您的 Windows 用户帐户配置文件似乎有问题。您是否尝试创建另一个用户帐户,然后手动创建队列?发生什么了?如果您卸载 MSMQ,重新启动并重新安装它会怎样?
-
@Ahmedilyas:我在两台不同的机器上试过这段代码。 MSMQ 之前没有安装,我安装了它并重新启动了系统。在两台机器上仍然遇到同样的问题。
-
@Ahmedilyas:刚刚尝试手动创建消息队列,它允许我创建。
-
@Ahmedilyas:是安装问题吗?我是否还必须在我的系统中安装 AD 才能使用 MSMQ?
-
@Ahmedilyas:好的,我不确定我在两台机器上的安装做错了什么。你能告诉我安装MSMQ的正确方法吗?我正在使用 Windows 7 专业版
标签: .net message-queue msmq send system.messaging