MSMQ Problema al leer colas privadas remotas (nuevamente)
Ok, mi problema es similar a Cómo recibir un mensaje de una cola de grupo de trabajo privado (y básicamente estoy usando el mismo código).
Estoy creando la cola en la máquina host usando
MessageQueue.Create(@".\Private$\MyNewPrivateQueue");
Apertura de la cola en la máquina remota con
var queue = new MessageQueue(@"FormatName:DIRECT=TCP:xxx.xxx.xxx.xxx\PRIVATE$\MyNewPrivateQueue");
Y escribir / leer datos usando queue.send () y queue.Receive ()
Tengo dos sistemas con los que estoy experimentando.
Windows 7 Home Premium x64Windows XP SP3Cuando creo la cola privada en el sistema W7 e intento escribir, luego leo la cola del sistema XP (según la pregunta mencionada) falla con una excepción "El servicio de cola de mensajes no está disponible" en la acción de lectura.
Sin embargo, cuando invierto los sistemas (cree la cola en el sistema XP y escriba / lea desde el sistema W7, y usando el mismo código)trabajo como se esperaba
He trabajado a través de:
Leer mensajes de colas remotasComprender cómo la seguridad de MSMQ bloquea el tráfico RPCObtener mensajes de MSMQ de Windows Server 2008 de forma remotaClear the way - MSMQ viene a través deMSMQ 3.0 ¿demasiado seguro para usted?ambién he intentado desactivar los cortafuegos W7 y XP, y he dado a cada hombre y su perro permisos completos en las colas en vano.
Dado que funciona con XP como el host de la cola pero no con W7 como el host, supongo que es un problema de seguridad y no un problema de código. Pero por mi vida no puedo ver en qué parte del W7 está el bloqueo.
EDIT 8/9
OK .. agregando
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ\Parameters\Security\AllowNonauthenticatedRPC
Me permitió leer mensajes desde la cola privada remota. Sin embargo, esto no parece permitir el uso de
GetPrivateQueueByMachine(String machineName)
para enumerar las colas privadas disponibles. Entonces, ¿alguna idea para este?