web-dev-qa-db-ja.com

MSMQは、私がワークグループコンピュータを使用していると考えるのはなぜですか?

コンピューターがドメインに接続されていますが、パブリックキューを作成する場合:

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

このエラーが発生します:

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

MSMQは、私がワークグループコンピュータを使用していると考えるのはなぜですか?

20
Mike Pateras

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

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

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

15
John Breakwell

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

キュー名がこれである場合、ワークグループエラーが発生しました。

".\QueueName"

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

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

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

24
Bob Horn

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

14
arjun

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

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

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

2
user913359

サーバー上で、MSMQの実行に問題があり、質問で尋ねられたエラーを含むさまざまな種類のエラーが発生していました。

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

私にとってうまくいったのは、サーバーマネージャーをいじることではなく、Powershellを使用してMSMQを再インストールすることでした。

削除-WindowsFeatureMsmq;追加-WindowsFeatureMsMq

これらの2つのコマンドレットは、管理者として実行されているPowershellコンソールで実行できます。少なくとも私にとってはエラーは修正されましたが、これによりサブ機能を含むMsmq機能全体がインストールされます。

Powershell - reinstalling MSMQ

0
Tore Aurstad

ドキュメントの目的で追加しています...トランザクションのデッドレターキューにアクセスしようとしたときに、「ワークグループインストールコンピューターは操作をサポートしていません」というエラーが発生しました。これは、マシン名を指定しなかったことが原因でした。私はコンピュータ名を表すためにピリオドを使用していました。例えば"FORMATNAME:DIRECT = OS:。\ SYSTEM $; DEADXACT"。完全なフォーマット名を使用しても機能しません。ピリオドをコンピュータ名に置き換えた後、問題は解決しました。以下は作業コードです。

using (var queue = new MessageQueue($@"FORMATNAME:DIRECT=OS:{Environment.MachineName}\SYSTEM$;DEADXACT"))
{
    queue.Purge();
}
0
Shashank

visual Studio(2015)からWebサイトをデバッグしているときにこのエラーが発生しました。 iisexpressを再起動するとこれが解決しました...

0
Elad

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

MSMQ configuration

0
Prakash D Modi