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 スパンです。