2009-06-04 14 views
10

Abbiamo riscontrato un problema con l'invio di un messaggio MSMQ al secondo nome DNS su un server. Se inviamo l'IP per quello stesso server, stiamo bene, ma non è questo il punto in cui stiamo andando architettonicamente. Qualche idea sul motivo per cui MSMQ si preoccuperebbe del nome che riceve?Impossibile inviare a MSMQ con 2 nomi DNS

Server Information:

Il server fisico load-int-01, ha un secondo nome IP e DNS ad esso associati.

  • Prima IP/DNS: load-int-01, con IP 10.0.10.10
  • Seconda IP/DNS: load-intv, con IP 10.0.10.20

Formati percorso della coda Usato:

  • FormatName:DIRECT=OS:load-int-01\private$\MyQueue → Works Fine
  • FormatName:DIRECT=OS:load-intv\private$\MyQueue → Restituisce l'errore & hellip;

    La coda non esiste o non si dispone di autorizzazioni sufficienti per eseguire questa operazione

Abbiamo anche provato ad utilizzare gli indirizzi IP, invece, e entrambi i gruppi di indirizzi IP funzionare bene.

  • FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue → funziona bene
  • FormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue → funziona bene
+0

Stai utilizzando code transazionali? –

+0

No, ma abbiamo creato un'app di prova e provato sia transazionale che non transazionale. Stessi risultati Attualmente combinando l'impostazione del Registro di sistema IgnoreOSNameValidation (dalla tua risposta di seguito) con un'altra che imposta l'aliasing (la chiave Nomi facoltativi in ​​HKEY_Local_Machine \ System \ CurrentControlSet \ Services \ LanmanServer \ Parameters), possiamo INVIARE a queste code con la nostra convenzione di denominazione, ma non possiamo RICEVERE su di loro. Senza queste due impostazioni di reg non possiamo nemmeno inviare. – Bob

risposta

9

Abbiamo appena parlato con Microsoft. Questa è una limitazione di MSMQ. Non è possibile ricevere su code con un nome DNS diverso dal nome NETBIOS del server. È possibile INVIARE alle code con un nome DNS alternativo purché si utilizzino le due chiavi del registro di cui sopra, OptionalNames e IgnoreOSNameValidation.

Torna a IP virtuali per noi, oppure potremmo mantenere il nome virtuale per le stringhe di connessione di invio (con le impostazioni del registro) e utilizzare. \ Per il nomeserver di ricezione ... che funziona.

Grazie per l'aiuto.

2

Da:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;899611

Per impostazione predefinita, Accodamento messaggi verifica il messaggio che riceve a determ ine se il messaggio è destinato al computer locale. Se il messaggio non è destinato al computer locale, il messaggio viene rifiutato.

Quindi seguire la sezione "IgnoreOSNameValidation" in questo articolo e spero che possa essere d'aiuto.

+0

buona scoperta. Lo abbiamo già provato di recente, tuttavia. :( Questo puzza davvero. – Bob

0

Molto frustrante.Sto cercando di migrare alcuni obiettivi MSMQ (servizi Web) e suppongo che dovrò configurarli per utilizzare gli IP virtuali e migrare gli IP virtuali, poiché la migrazione del nome NetBIOS sarà una missione.

MSMQ dovrebbe essere ribattezzato MSMQ del 1982, dal momento che sembra precedere l'invenzione di un livello di astrazione astuto e utile chiamato "DNS" nel 1983.

0

ho avuto lo stesso problema e ottenuto che funziona. Il trucco per me è stato dopo aver impostato la chiave del Registro di sistema IgnoreOSNameValidation, è necessario riavviare il servizio Accodamento messaggi.

So che questo è un vecchio post, ma viene visualizzato in Google durante la ricerca di una soluzione a questo problema.

Problemi correlati