2010-02-04 18 views
16

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#.¿Cómo cambiar la configuración de Msmq del modo de grupo de trabajo al modo de dominio?

if (MessageQueue.Exists("machineA\queue1")) 
{ 
    label1.Text = "queue found"; 
} 
else 
{ 
    label1.Text = "queue could not be found"; 
} 

Pero Exists() método de retorno false en la máquina B. El mismo código funciona bien en la máquina C.

he encontrado algunas cosas relacionadas con el modo de dominio msmq y el modo de grupo de trabajo. Creo que msmq se instaló en el modo workgoup en la máquina B.

¿Cómo puedo cambiar esta configuración del modo de grupo de trabajo al modo de dominio?

Respuesta

8

Ejecute el Administrador del servidor en la máquina que está alojando la cola. Haga clic con el botón derecho en Funciones y haga clic en "Agregar funciones"

Desglose en Message Queue Server y en Message Queue Server. Debería ver una casilla de verificación para la integración del servicio de directorio.

Compruébelo y haga clic en instalar.

Normalmente debe reiniciar el servidor para que muestre el cambio.

14

HKEY_LOCAL_MACHINE \ Software \ Microsoft \ MSMQ \ Parameters \

Comprobar los datos de la REG_DWORD workgroup. ¿Es 1 o 0?

  • 1 es el modo de grupo de trabajo.
  • 0 es el modo AD
4

me encontré con algunos problemas, no importa lo mucho que instalar o desinstalar MSMQ o reiniciado, todavía no era capaz de utilizar la cola. Así que quería publicar algunos enlaces aquí

http://support.microsoft.com/kb/935498

Cuando se llega a una parte de "Para evitar este problema, utilice el complemento Usuarios y equipos de Microsoft Management Console (MMC) ...". Debajo está cómo haces eso.

Cómo borrar del directorio activo http://technet.microsoft.com/en-us/library/cc773660(v=WS.10).aspx "Eliminar objetos de equipo rancios" es la parte que interesa.

También encontré esta bonita error en el registro de eventos "El servicio de Message Queue Server no se unirá a la dominio. Existe un objeto de configuración MSMQ (msmq) en el nuevo dominio con un ID que difiere del ID del servicio. Elimine el objeto de configuración MSMQ en el nuevo dominio, reinicie el servicio Message Queue Server e inicie sesión de nuevo. "- lo que ayudó a señalar su camino.

+0

Me he encontrado con este mismo problema y encontré otro documento que fue útil. Sección Limitaciones de instalación de MSMQ http://technet.microsoft.com/en-us/library/cc749102(v=ws.10).aspx – Casey

8

Básicamente, la diferencia entre el modo de dominio y grupo de trabajo no está definida por el valor de la marca de registro "grupo de trabajo" mencionado en @engin. Esta bandera solo refleja el modo operacional actual pero no lo establece.

Si se 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 solo el modo de dominio. La versión actual de MSMQ es 5.0.

A continuación, puede observar un comportamiento bastante interesante cuando instaló MSMQ en su DC, el indicador de grupo de trabajo continuamente revierte a 1 después de reiniciar cada servicio de MSMQ. Esto significa que debe otorgar al servicio de red cuenta Crear objetos de configuración MSMQ permiso para el objeto de equipo en Servicios de dominio de Active Directory antes de instalar Integración de servicios de directorio función en una computadora que es un controlador de dominio.

Usted puede encontrar más información sobre cómo hacerlo aquí: https://technet.microsoft.com/en-us/library/cc730960.aspx
MSMQ se ejecuta bajo el (menos privilegiados) cuenta servicio de red en lugar de (todopoderoso) cuenta del sistema local a partir de la versión 4.0 (Vista/Server 2008)

Para responder @mkus pregunta más directamente para "configurar" el modo de dominio que acaba de instalar MSMQ en el controlador de dominio y asegúrese de que los permisos adecuados en su lugar para la cuenta del Servicio de red. Una vez hecho esto, verá que funciona en modo de dominio con el indicador de grupo de trabajo cambiado a 0 automáticamente para reflejar esto.

También hay un par de enlaces para aclarar los problemas relacionados con los permisos de los objetos MSMQ y cuándo/por qué debe configurarlos: http://blogs.msdn.com/b/johnbreakwell/archive/2009/08/03/default-msmq-queue-permissions-have-changed-in-msmq-4-0.aspx. En resumen, comenzando desde MSMQ 4.0 Todos y el inicio de sesión anónimo se eliminaron de las ACL de los objetos MSMQ predeterminados como precaución contra los ataques DoS (aunque hay excepciones a este cambio y el modo Workgroup es uno de esos).

Y como se puede leer en el artículo de Technet a continuación tiene que ir a otorgan ciertos rigts a MSMQ objetos ya sea al servicio de red O al ordenador cuentas al instalar la característica Servicio de enrutamiento en un servidor Windows 2008 R2 (o posterior) equipo que no es un controlador de dominio O al instalar la función Integración de servicios de directorio de Message Queue Server en un equipo con Windows Server 2008 R2 (o posterior) que es un controlador de dominio. Ver detalles aquí: https://technet.microsoft.com/en-us/library/cc749102(v=ws.10).aspx

+0

Esta es la respuesta correcta para la instalación de un controlador de dominio. Vea este enlace desde Mikhail https://technet.microsoft.com/en-us/library/cc730960.aspx –

Cuestiones relacionadas