Sto cercando di capire come funziona il multicasting in MSMQ ma non riesco a ricevere messaggi nemmeno dalla stessa macchina. Ovviamente sto facendo qualcosa di sbagliato ma non riesco a vedere cosa.MSMQ - Impossibile ricevere da code Multicast
Ecco dove sono a:
ho creato manualmente una coda privata non transazionale chiamato MulticastTest
e quindi impostare l'indirizzo multicast per 234.1.1.1:8001
. Poi il mio test di invio di app fa questo:
MessageQueue queue = new MessageQueue("FormatName:MULTICAST=234.1.1.1:8001");
queue.Send("Hello World");
Questo funziona, almeno sembra per inviare il messaggio che vedo in una coda in uscita sulla stessa macchina. Almeno suppongo che sia corretto, per favore dimmi se non lo è.
Così ora provo a eseguire l'app di ricezione (sulla stessa macchina o su un'altra diversa configurata sullo stesso indirizzo multicast) e non riesco a farla funzionare. Se provo questo:
MessageQueue queue = new MessageQueue("FormatName:MULTICAST=234.1.1.1:8001");
var message = queue.Receive();
Semplicemente non funziona, il metodo Receive()
genera un'eccezione dicendo:
Il nome del formato specificato non supporta l'operazione richiesta. Ad esempio, un nome di formato diretto di coda non può essere cancellato
Se provo e impostare la coda di ricezione come .\private$\MulticastTest
almeno attende un messaggio, ma non succede nulla, tutti i messaggi ancora rimangono nella coda in uscita.
Quindi cosa sto sbagliando? È necessario eseguire un qualche tipo di servizio per MSMQ per inviare messaggi dalla coda in uscita?
Ho anche provato a dare le autorizzazioni complete all'utente ANONIMO come da this question ma ciò non ha alcun effetto.
Ciao Peter, ho seguito questi passaggi ancora non sono in grado di ricevere un messaggio in macchina diversa, funziona bene nella stessa macchina, ho visto quel messaggio nel registro eventi, suggeriva 2 IP nel messaggio, ho aggiunto la chiave con quell'IP –
Il collegamento tecnico è morto. Potresti aggiornarlo o rimuoverlo? –
@SeanB sostituito il collegamento con un altro che si spera trasmetta le giuste informazioni, è stato un po 'di tempo fa! –