2011-05-10 9 views

Respuesta

15

Ser parte de un dominio es un precursor para instalar MSMQ en modo integrado AD. No garantiza que MSMQ esté instalado en el modo integrado AD. MSMQ instalará en el modo de grupo de trabajo si:

  1. integración de AD no fue seleccionado como una opción de configuración fue seleccionado
  2. integración de AD, pero no pudo inicializar; comprobar registros de eventos

Sí, el nombre del grupo de trabajo es confuso en una situación de miembro de dominio.

+4

I comprueba los registros y encontraron que MSMQ estaba detectando una configuración anterior MSMQ en conflicto con él trabajar con AD. Instalé MSMQ y luego habilité la integración de AD. Desinstalé por completo MSMQ, y luego lo reinstalé con todo (integración de AD incluida), y dejé de obtener el error. Gracias por tu ayuda. –

+1

Su comentario describe la respuesta que funcionó para mí: no solo tuve que agregar los componentes adicionales de MSMQ, primero tuve que * desinstalar * MSMQ para que funcionara correctamente. –

+0

Primero, eliminar el objeto MSMQ en AD debería servir para el truco. –

23

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 cola.

Cuando mi nombre de la cola estaba presente, tengo el error de grupo de trabajo:

".\QueueName" 

Cuando cambié a una versión más formal, no hubo un error y el envío a la cola trabajaron:

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

En caso de que alguien más se encuentre con esta publicación, ahora tienen algo más que probar ...

+16

". \ QueueName" apunta a una cola pública.El envío de mensajes a una cola pública arroja el error mencionado anteriormente. Pero enviar mensajes a una cola privada no. Su versión formal en realidad está apuntando a una cola privada. Esa es la razón por la que trabajan. – Siddharth

2

Estaba enfrentando el mismo problema, eche un vistazo a la solución a continuación. No sé el motivo, pero crear 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 una cola para recibir el mensaje de la misma manera.

14

que tiene el mismo problema y lo resolvió cambiándola a @ "\ private $ \ NombreCola"

0

Añadiendo a modo de documentación ... que estaba recibiendo el error "Un equipo de instalación de grupo de trabajo no soporta la operación "al intentar acceder a la cola de mensajes bloqueados transaccionales y se debió a que no se especificaba el nombre de la máquina. Estaba usando el período para denotar el nombre de la computadora. p.ej. "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 está el código de trabajo.

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