O que acontece com mensagens MSMQ enviadas quando um usuário não tem permissões para uma fila

2

Fazendo alguns testes, parece que, se eu tentar enviar uma mensagem para uma fila em que o usuário está impedido de acessar a permissão "Enviar mensagem", a mensagem enviada desaparece. Ele não aparece na fila de cartas mortas, na fila de saída ou em qualquer outro lugar que pensei em procurar. Nem qualquer tipo de exceção é lançado ao enviar a mensagem.

O que está acontecendo com essa mensagem? É realmente apenas ser comido ou há algo que estou perdendo?

Aqui está o código que estou usando para enviar a mensagem:

var q = new MessageQueue(@"[ComputerName]\Test"); 
q.Send("foo"); 
    
por Dugan 12.04.2011 / 18:06

2 respostas

2

Por padrão, o MSMQ descartará TODAS as mensagens que não podem ser entregues por QUALQUER razão. Não haverá mensagens de erro, a menos que você esteja enviando para uma máquina local.

Enviando para uma máquina remota, você só tem mensagens de erro se não puder colocar uma mensagem na fila de saída que não ajudará na entrega para a fila remota. Enviando para uma máquina local, não há mecanismo de fila de saída e o gerenciador de filas locais tentará colocar a mensagem diretamente na fila necessária para que você possa ter mensagens de erro.

Você precisa ativar o Diário de origem negativa para que uma cópia da mensagem seja colocada na Fila de mensagens incorretas correspondente para que você possa descobrir o motivo da não entrega.

Felicidades
John Breakwell

    
por 13.04.2011 / 10:10
0

Em suma ... se você não tem permissões para enviar para essa fila ... você deve receber uma mensagem de erro retornada de qualquer método usado para tentar enviar a mensagem. Se você não está checando, a mensagem é lançada no eterno bit-bucket e não é recuperável. Sem mais informações sobre o que você está usando para enviar mensagens para a fila ... não posso nem começar a ajudá-lo a solucionar seu problema.

    
por 12.04.2011 / 18:25