21

私のコンピューターはドメインに接続されていますが、パブリック キューを作成しようとすると、次のようになります。

MessageQueue.Create(@".\testqueue");

次のエラーが表示されます。

ワークグループ インストールのコンピューターは、この操作をサポートしていません。

MSMQ が私がワークグループ コンピューターにいると判断するのはなぜですか?

4

8 に答える 8

29

これが遅れていることはわかっており、すでに受け入れられている回答がありますが、この問題が発生したばかりで、キュー文字列の形式を変更することで解決しました。

私のキュー名がこれだったとき、ワークグループエラーが発生しました:

".\QueueName"

より正式なバージョンに変更すると、エラーは発生せず、キューへの送信は機能しました。

"FormatName:DIRECT=OS:ComputerName\private$\QueueName"

他の誰かがこの投稿に出くわした場合に備えて、今、彼らは何か他のことを試しています...

于 2012-05-31T21:05:49.063 に答える
16

同じ問題が発生し、@".\private$\QueueName" に変更して解決しました

于 2014-06-14T11:37:32.410 に答える
15

ドメインの一部であることは、MSMQ を AD 統合モードでインストールするための前提条件です。MSMQ IS が AD 統合モードでインストールされることは保証されません。次の場合、MSMQ はワークグループ モードでインストールされます。

  1. AD 統合がセットアップ オプションとして選択されていません
  2. AD 統合が選択されましたが、初期化に失敗しました。イベントログを確認する

はい、ワークグループ名はドメイン メンバーの状況では混乱します。

于 2011-05-10T14:44:16.473 に答える
3

私は同じ問題に直面していました。以下の解決策を見てください。理由はわかりませんが、この方法でキューを作成すると完全に機能します。

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");            
}

同じ方法で、メッセージを受信するためのキューを作成できます。

于 2012-06-27T18:30:40.903 に答える
0

MSMQ がゲスト ユーザーまたは別のユーザーとしてマシンにインストールされている可能性があるため、マシンから削除し、管理者権限でインストールしてください。

MSMQ 構成

于 2019-01-10T11:33:01.100 に答える