Não é possível enviar uma mensagem MSMQ para o segundo nome DNS de um servidor

Não é possível enviar uma mensagem MSMQ para o segundo nome DNS de um servidor

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.10Segundo 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)

informação relacionada