webentwicklung-frage-antwort-db.com.de

Warum glaubt MSMQ, dass ich auf einem Arbeitsgruppencomputer bin?

Mein Computer ist mit einer Domain verbunden, aber wenn ich eine öffentliche Warteschlange erstelle:

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

Ich erhalte diesen Fehler:

Ein Arbeitsgruppeninstallationscomputer unterstützt den Vorgang nicht.

Warum glaubt MSMQ, dass ich auf einem Arbeitsgruppencomputer bin?

20
Mike Pateras

Die Zugehörigkeit zu einer Domäne ist eine Voraussetzung für die Installation von MSMQ im AD-integrierten Modus. Es wird nicht garantiert, dass MSMQ IS im AD-integrierten Modus installiert ist. MSMQ wird im Arbeitsgruppenmodus installiert, wenn:

  1. Die AD-Integration wurde nicht als Setup-Option ausgewählt
  2. Die AD-Integration wurde ausgewählt, konnte jedoch nicht initialisiert werden. Überprüfen Sie die Ereignisprotokolle

Ja, der Arbeitsgruppenname ist in einer Situation mit Domänenmitgliedern verwirrend.

15
John Breakwell

Ich weiß, dass dies zu spät ist und es bereits eine akzeptierte Antwort gibt, aber ich hatte gerade dieses Problem und es wurde behoben, indem das Format der Warteschlangenzeichenfolge geändert wurde.

Als mein Warteschlangenname dieser war, erhielt ich den Arbeitsgruppenfehler:

".\QueueName"

Als ich es zu einer formelleren Version änderte, gab es keinen Fehler und das Senden an die Warteschlange funktionierte:

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

Nur für den Fall, dass jemand anders auf diesen Beitrag stößt, hat er jetzt etwas anderes zu versuchen ...

24
Bob Horn

Ich habe das gleiche Problem und habe es gelöst, indem ich es in @ ".\Private $\QueueName" geändert habe.

14
arjun

Ich hatte das gleiche Problem, schauen Sie sich die unten stehende Lösung an. Ich kenne den Grund nicht, aber das Erstellen einer Warteschlange auf diese Weise funktioniert perfekt.

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

sie können auf die gleiche Weise eine Warteschlange für den Empfang von Nachrichten erstellen.

2
user913359

Auf dem Server hatte ich Probleme beim Ausführen von MSMQ und bekam verschiedene Arten von Fehlern, einschließlich des in der Frage gestellten Fehlers.

Ein Arbeitsgruppeninstallationscomputer unterstützt den Vorgang nicht

Was für mich funktionierte, war nicht mit dem Server-Manager herumzuspielen, sondern MSMQ mit Powershell neu zu installieren.

Remove-WindowsFeature Msmq; Add-WindowsFeature MsMq

Diese beiden Cmdlets können in einer Powershell-Konsole ausgeführt werden, die als Administrator ausgeführt wird. Zumindest wurde der Fehler für mich behoben, aber dadurch wird die gesamte Msmq-Funktion einschließlich der Unterfunktionen installiert.

Powershell - reinstalling MSMQ

0
Tore Aurstad

Hinzufügen zu Dokumentationszwecken ... Beim Versuch, auf die Warteschlange für nicht zustellbare Nachrichten für Transaktionen zuzugreifen, wurde die Fehlermeldung "Ein Arbeitsgruppeninstallationscomputer unterstützt den Vorgang nicht" angezeigt, und der Computername wurde nicht angegeben. Ich habe Punkt verwendet, um den Computernamen anzugeben. z.B. "FORMATNAME: DIRECT = OS:.\SYSTEM $; DEADXACT". Es funktioniert nicht einmal mit der Verwendung des vollständigen Formatnamens. Problem behoben, nachdem der Punkt durch den Computernamen ersetzt wurde. Unten ist der Arbeitscode.

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

Es ist möglich, dass MSMQ auf Ihrem Computer als Gastbenutzer oder als anderer Benutzer installiert ist. Entfernen Sie es daher vom Computer und installieren Sie es mit Administratorberechtigung.

 MSMQ configuration

0
Prakash D Modi