
Publiqué esto en StackOverflow, pero creo que probablemente sea más relevante para esta multitud.
Tengo un problema al enviar un mensaje MSMQ al segundo nombre DNS en un servidor. Si enviamos la IP para ese mismo servidor, estamos bien, pero no es ahí a donde vamos arquitectónicamente. ¿Alguna idea de por qué a MSMQ le importaría el nombre que recibe?
Aquí está nuestro ejemplo:
Información del servidor: el servidor físico load-int-01 tiene una segunda IP y un nombre DNS asociados. Primera IP/DNS: load-int-01
, con IP 10.0.10.10
Segunda IP/DNS: load-intv
, con IP10.0.10.20
Formatos de ruta de cola utilizados:
FormatName:DIRECT=OS:load-int-01\private$\MyQueue
-> Funciona bien
FormatName:DIRECT=OS:load-intv\private$\MyQueue
-> Devuelve el siguiente error:
La cola no existe o no tienes permisos suficientes para realizar esta operación
También intentamos usar las direcciones IP y ambos conjuntos de IP funcionan bien.
FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue
-> Funciona bien FormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue
-> Funciona bien
Respuesta1
Podría deberse a una búsqueda inversa. No estoy seguro de cómo obtiene MSMQ la información del nombre de host, pero si obtiene el nombre de host de Windows y no el nombre de host DNS de la segunda IP, entonces una búsqueda inversa de la segunda IP fallaría ya que devolvería el segundo nombre de host DNS, que es diferente. luego el nombre de host real del servidor.
Respuesta2
Para resolver a través de DNS, use el nombre DNS en lugar de la IP de esta manera; ambos deberían resolverse:
FORMATNAME:Direct=OS:load-intv\private$\MyQueue
FORMATNAME:Direct=OS:load-int-01\private$\MyQueue
Además, ejecute el siguiente script de registro en el servidor MSMQ (segúnhttp://support.microsoft.com/kb/306785):
reg.exe ADD HKLM\Software\Microsoft\MSMQ\Parameters /V IgnoreOSNameValidation /t REG_DWORD /d 1 /f
Respuesta3
MSMQ probablemente espera que el nombre netbios de la computadora coincida con el nombre de host dns utilizado para llegar allí. Es el mismo problema que tienes cuando intentas utilizar un CNAME para asignar una unidad a un servidor de Windows.
Hay una manera de asignarle un alias al nombre agregando una entrada de registro:
HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters
Add Value: OptionalNames REG_SZ with as value the name of the alias
If you make it a type REG_MULTI_SZ, you can add multiple aliases.
Respuesta4
¿Está enviando en la misma máquina (local a load-intv) o desde una máquina remota?
Además, ¿qué direcciones IP se devuelven realmente cuando consulta DNS para load-intv y load-int-01? ¿Solo los que mencionas (10.0.10.20 y 10.0.10.10 respectivamente) o más?
¿Algún archivo HOSTS involucrado? Si es así, ¿tiene otros nombres DNS asignados a 10.0.10.20?
Saludos John Breakwell (MSFT)