
Postei isso no StackOverflow, mas acho que provavelmente é mais pertinente para esse público.
Estou tendo problemas ao enviar uma mensagem MSMQ para o segundo nome DNS em um servidor. Se enviarmos o IP para esse mesmo servidor, tudo bem, mas não é para onde vamos arquitetonicamente. Alguma idéia de por que o MSMQ se importaria com o nome que recebe?
Aqui está nosso exemplo:
Informações do servidor: O servidor físico load-int-01 possui um segundo IP e nome DNS associado a ele. Primeiro IP/DNS: load-int-01
, com IP 10.0.10.10
Segundo IP/DNS: load-intv
, com IP10.0.10.20
Formatos de caminho de fila usados:
FormatName:DIRECT=OS:load-int-01\private$\MyQueue
-> Funciona bem
FormatName:DIRECT=OS:load-intv\private$\MyQueue
-> Retorna o seguinte erro:
A fila não existe ou você não tem permissões suficientes para realizar esta operação
Também tentamos usar os endereços IP e ambos os conjuntos de IPs funcionam bem.
FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue
-> Funciona bem FormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue
-> Funciona bem
Responder1
Pode ser devido à pesquisa reversa. Não tenho certeza de como o MSMQ obtém suas informações de nome de host, mas se estiver obtendo o nome de host do Windows e não o nome de host DNS do segundo IP, uma pesquisa reversa para o segundo IP falharia, pois retornaria o segundo nome de host DNS, que é diferente em seguida, o nome do host real do servidor.
Responder2
Para resolver via DNS, use o nome DNS em vez do IP desta forma - ambos devem resolver:
FORMATNAME:Direct=OS:load-intv\private$\MyQueue
FORMATNAME:Direct=OS:load-int-01\private$\MyQueue
Além disso, execute o seguinte script de registro no servidor MSMQ (porhttp://support.microsoft.com/kb/306785):
reg.exe ADD HKLM\Software\Microsoft\MSMQ\Parameters /V IgnoreOSNameValidation /t REG_DWORD /d 1 /f
Responder3
O MSMQ provavelmente espera que o nome netbios do computador corresponda ao nome do host DNS usado para chegar lá. É o mesmo problema que você enfrenta ao tentar usar um CNAME para mapear uma unidade para um servidor Windows.
Existe uma maneira de criar um alias para o nome adicionando uma 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.
Responder4
Você está enviando na mesma máquina (local para load-intv) ou de uma máquina remota?
Além disso, quais endereços IP são realmente retornados quando você consulta o DNS para load-intv e load-int-01? Apenas os que você mencionou - 10.0.10.20 e 10.0.10.10 respectivamente - ou extras?
Algum arquivo HOSTS envolvido? Em caso afirmativo, você tem algum outro nome DNS mapeado para 10.0.10.20?
Felicidades John Breakwell (MSFT)