dns - ¿Por qué MSMQ piensa que estoy en una computadora de grupo de trabajo?
workgroup (5)
Mi computadora está conectada a un dominio, pero cuando voy a crear una cola pública:
MessageQueue.Create(@"./testqueue");
Me sale este error:
Una computadora de instalación de grupo de trabajo no admite la operación.
¿Por qué podría MSMQ pensar que estoy en una computadora de grupo de trabajo?
Agregando para fines de documentación ... Recibía el error "Una computadora de instalación de grupo de trabajo no admite la operación" al intentar acceder a la cola transaccional de mensajes no entregados y se debió a no especificar el nombre de la máquina. Estaba usando el punto para indicar el nombre de la computadora. por ejemplo, "FORMATNAME: DIRECT = OS:. / SYSTEM $; DEADXACT". No funciona incluso con el uso de nombre de formato completo. Problema resuelto después de reemplazar el período con el nombre de la computadora. A continuación se muestra el código de trabajo.
using (var queue = new MessageQueue($@"FORMATNAME:DIRECT=OS:{Environment.MachineName}/SYSTEM$;DEADXACT"))
{
queue.Purge();
}
Estaba enfrentando el mismo problema, eche un vistazo a la solución a continuación. No sé la razón, pero crear una cola de esta manera funciona perfectamente.
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");
}
Puede crear cola para recibir mensajes de la misma manera.
Obtuve el mismo problema y lo resolví cambiando a @ ". / Private $ / QueueName"
Sé que esto es tarde y ya hay una respuesta aceptada, pero acabo de tener este problema y se resolvió cambiando el formato de la cadena de la cola.
Cuando mi nombre de cola era este, recibí el error de grupo de trabajo:
"./QueueName"
Cuando lo cambié a una versión más formal, no hubo ningún error y el envío a la cola funcionó:
"FormatName:DIRECT=OS:ComputerName/private$/QueueName"
En caso de que alguien más llegue a esta publicación, ahora tienen otra cosa que probar ...
Ser parte de un dominio es un cursor previo para instalar MSMQ en modo integrado de AD. No garantiza que MSMQ IS esté instalado en modo integrado de AD. MSMQ se instalará en modo de grupo de trabajo si:
- La integración de AD no se seleccionó como una opción de configuración
- Se seleccionó la integración de AD pero no se pudo inicializar; revisar los registros de eventos
Sí, el nombre del grupo de trabajo es confuso en una situación de miembro de dominio.