¿Cómo cambiar la configuración de Msmq del modo de grupo de trabajo al modo de dominio?
(4)
Hay una cola pública llamada queue1
en la máquina A. Quiero enviar mensajes a esta cola desde la máquina B. Para lograr esto, escribí ese código c #.
if (MessageQueue.Exists("machineA/queue1"))
{
label1.Text = "queue found";
}
else
{
label1.Text = "queue could not be found";
}
Pero el método Exists()
devuelve false
en la máquina B. El mismo código funciona bien en la máquina C.
Encontré algunas cosas relacionadas con el modo de dominio msmq y el modo de grupo de trabajo. Creo que msmq instalado en modo workgoup en la máquina B.
¿Cómo puedo cambiar esta configuración del modo de grupo de trabajo al modo de dominio?
HKEY_LOCAL_MACHINE / Software / Microsoft / MSMQ / Parameters /
Compruebe los datos para el workgroup
REG_DWORD. ¿Es 1 o 0?
- 1 es el modo de grupo de trabajo.
- 0 es el modo AD
Básicamente, la diferencia entre el modo de dominio y de grupo de trabajo no está definida por el valor del indicador de registro "grupo de trabajo" mencionado por . Este indicador solo refleja el modo operativo actual pero no lo establece.
Si ejecuta en modo de dominio o grupo de trabajo se define si instaló MSMQ en el controlador de dominio o en un servidor miembro. Los detalles sobre las diferencias entre estos dos modos se pueden encontrar aquí: https://support.microsoft.com/en-us/kb/884974/
MSMQ 1.0 se utiliza para admitir el modo de dominio solamente. La versión actual de MSMQ es 5.0.
A continuación, puede ver un comportamiento bastante interesante cuando instaló MSMQ en su DC, la marca de su grupo de trabajo se revierte continuamente a 1 después de cada reinicio del servicio MSMQ. Esto significa que debe otorgar a la cuenta del Servicio de red el permiso Crear objetos de configuración de MSMQ para el objeto de la computadora en los Servicios de dominio de Active Directory antes de instalar la función de integración de servicios de directorio en una computadora que sea un controlador de dominio.
Puede encontrar detalles sobre cómo hacerlo aquí: https://technet.microsoft.com/en-us/library/cc730960.aspx
MSMQ se ejecuta con la cuenta de servicio de red (menos privilegiada) en lugar de la cuenta de sistema local (toda potente) a partir de la versión 4.0 (Vista / Server 2008)
Entonces, para responder a la pregunta de más directamente al modo de "configuración" de dominio, simplemente instale MSMQ en el controlador de dominio y asegúrese de tener los permisos adecuados para la cuenta del Servicio de red. Una vez hecho esto, verá que funciona en modo de dominio con la marca de grupo de trabajo cambiada a 0 automáticamente para reflejar esto.
También algunos enlaces para aclarar los problemas relacionados con los permisos de los objetos de MSMQ y cuándo / por qué necesita configurarlos: http://blogs.msdn.com/b/johnbreakwell/archive/2009/08/03/default-msmq-queue-permissions-have-changed-in-msmq-4-0.aspx . En resumen, a partir de MSMQ 4.0 Todos y el inicio de sesión anónimo se eliminaron de las ACL de los objetos MSMQ predeterminados como medida de precaución contra los ataques DoS (aunque hay excepciones a este cambio y el modo de grupo de trabajo es uno de ellos).
Y como puede leer en el artículo de Technet a continuación, debe otorgar ciertos derechos a los objetos de MSMQ al Servicio de red O a las Cuentas de computadora cuando instale la función Servicio de enrutamiento en una computadora con Windows Server 2008 R2 (o posterior) que no sea un dominio. controlador O al instalar la función de integración de servicios de directorio de Message Queue Server en una computadora con Windows Server 2008 R2 (o posterior) que sea un controlador de dominio. Consulte los detalles aquí: https://technet.microsoft.com/en-us/library/cc749102(v=ws.10).aspx
Ejecute Server Manager en la máquina que aloja la cola. Haga clic derecho en Características y haga clic en "Agregar características"
Profundice en Message Queue Server y en Message Queue Server Services. Debería ver una casilla de verificación para la integración del servicio de directorio.
Compruébalo y haz clic en instalar.
Por lo general, debe reiniciar el servidor para que muestre el cambio.
Me encontré con algunos problemas, sin importar cuánto instalé o desinstalé MSMQ o reinicié, todavía no podía usar la cola. Así que quería publicar algunos enlaces aquí.
http://support.microsoft.com/kb/935498
Cuando llegue a una parte sobre "Para solucionar este problema, use los Usuarios de Active Directory y la Computadora Microsoft Management Console (MMC) ...". A continuación se muestra cómo hacer eso.
Cómo eliminar de Active Directory http://technet.microsoft.com/en-us/library/cc773660(v=WS.10).aspx "Eliminar objetos de computadora obsoletos" es la parte que le interesa.
También encontré este error en el registro de eventos "El servicio de Message Queue Server no se unirá al dominio. Existe un objeto de configuración de MSMQ (msmq) en el nuevo dominio con un ID diferente del ID del servicio. Elimine el objeto de configuración de MSMQ en el nuevo dominio, reinicie el servicio de Message Queue Server y vuelva a iniciar sesión. "- que ayudó a señalar su camino.