コンピューターがドメインに接続されていますが、パブリックキューを作成する場合:
MessageQueue.Create(@".\testqueue");
このエラーが発生します:
ワークグループインストールコンピュータは、この操作をサポートしていません。
MSMQは、私がワークグループコンピュータを使用していると考えるのはなぜですか?
ドメインの一部であることは、MSMQをAD統合モードでインストールするための前兆です。 MSMQ ISがAD統合モードでインストールされることを保証するものではありません。MSMQは次の場合にワークグループモードでインストールされます:
はい、ワークグループ名はドメインメンバーの状況では混乱を招きます。
これが遅れていることはわかっており、すでに受け入れられている回答がありますが、この問題が発生したばかりで、キュー文字列の形式を変更することで解決しました。
キュー名がこれである場合、ワークグループエラーが発生しました。
".\QueueName"
より正式なバージョンに変更したとき、エラーは発生せず、キューへの送信は機能しました。
"FormatName:DIRECT=OS:ComputerName\private$\QueueName"
他の誰かがこの投稿に出くわした場合に備えて、今、彼らは他に試すことがあります...
同じ問題が発生し、@ "。\ private $\QueueName"に変更して解決しました。
私は同じ問題に直面していました。以下の解決策を見てください。理由はわかりませんが、この方法でキューを作成すると完全に機能します。
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");
}
同様に、メッセージを受信するためのキューを作成できます。
サーバー上で、MSMQの実行に問題があり、質問で尋ねられたエラーを含むさまざまな種類のエラーが発生していました。
ワークグループインストールコンピュータは操作をサポートしていません
私にとってうまくいったのは、サーバーマネージャーをいじることではなく、Powershellを使用してMSMQを再インストールすることでした。
削除-WindowsFeatureMsmq;追加-WindowsFeatureMsMq
これらの2つのコマンドレットは、管理者として実行されているPowershellコンソールで実行できます。少なくとも私にとってはエラーは修正されましたが、これによりサブ機能を含むMsmq機能全体がインストールされます。
ドキュメントの目的で追加しています...トランザクションのデッドレターキューにアクセスしようとしたときに、「ワークグループインストールコンピューターは操作をサポートしていません」というエラーが発生しました。これは、マシン名を指定しなかったことが原因でした。私はコンピュータ名を表すためにピリオドを使用していました。例えば"FORMATNAME:DIRECT = OS:。\ SYSTEM $; DEADXACT"。完全なフォーマット名を使用しても機能しません。ピリオドをコンピュータ名に置き換えた後、問題は解決しました。以下は作業コードです。
using (var queue = new MessageQueue($@"FORMATNAME:DIRECT=OS:{Environment.MachineName}\SYSTEM$;DEADXACT"))
{
queue.Purge();
}
visual Studio(2015)からWebサイトをデバッグしているときにこのエラーが発生しました。 iisexpressを再起動するとこれが解決しました...