私のコンピューターはドメインに接続されていますが、パブリック キューを作成しようとすると、次のようになります。
MessageQueue.Create(@".\testqueue");
次のエラーが表示されます。
ワークグループ インストールのコンピューターは、この操作をサポートしていません。
MSMQ が私がワークグループ コンピューターにいると判断するのはなぜですか?
これが遅れていることはわかっており、すでに受け入れられている回答がありますが、この問題が発生したばかりで、キュー文字列の形式を変更することで解決しました。
私のキュー名がこれだったとき、ワークグループエラーが発生しました:
".\QueueName"
より正式なバージョンに変更すると、エラーは発生せず、キューへの送信は機能しました。
"FormatName:DIRECT=OS:ComputerName\private$\QueueName"
他の誰かがこの投稿に出くわした場合に備えて、今、彼らは何か他のことを試しています...
同じ問題が発生し、@".\private$\QueueName" に変更して解決しました
ドメインの一部であることは、MSMQ を AD 統合モードでインストールするための前提条件です。MSMQ IS が AD 統合モードでインストールされることは保証されません。次の場合、MSMQ はワークグループ モードでインストールされます。
はい、ワークグループ名はドメイン メンバーの状況では混乱します。
私は同じ問題に直面していました。以下の解決策を見てください。理由はわかりませんが、この方法でキューを作成すると完全に機能します。
private MessageQueue messageQueue;
public const string DEFAULT_QUEUE_NAME = "newQueue";
public const string QUEUENAME_PREFIX = ".\\Private$\\";
public static string QueueName
{
get
{
string result = string.Format("{0}{1}", QUEUENAME_PREFIX, DEFAULT_QUEUE_NAME);
return result;
}
}
public void SendMessage()
{
string queuePath = QueueName;
MessageQueue messageQueue = MessageQueue.Create(queuePath);
messageQueue.Send("msg");
}
同じ方法で、メッセージを受信するためのキューを作成できます。