Recomendações de referência de fila
Se você criar uma instância do MessageQueue componente, você precisa indicar qual fila deseja se comunicar com o componente. Há três maneiras para se referir a uma fila no seu código:
Pelo caminho — o caminho para uma fila identifica com exclusividade o nome de fila e computador para a fila em que você está interessado.
Por nome de formato — um identificador exclusivo para a fila gerada pelo MSMQ quando a fila é criada ou gerada posteriormente pelo aplicativo.
Por rótulo — um nome possivelmente não exclusivo e descritivo para a fila que é atribuído pelo administrador da fila quando a fila é criada.
Quando você cria uma nova fila, em vez de uma nova instância do MessageQueue componente, você deve usar o caminho. Formato de nome e rótulo são atribuídos pelo serviço de enfileirar de mensagens sistema depois que a fila for criada.Quando você se referir a uma fila existente no código ou a partir de Caixa de ferramentas, no entanto, você pode escolher qual método de referência que você deseja usar.Seja qual for o método escolhido é armazenado no Path propriedade.
Usando o caminho para uma fila, consulte
Um caminho de fila leva o formulário servername\queuename. Caminhos para uma fila sempre são exclusivos.A tabela a seguir lista as informações de caminho usadas para cada tipo de fila:
Tipo de fila |
Sintaxe usada em caminho |
---|---|
Fila pública |
MachineName\QueueName |
Fila particular |
MachineName\particular $ \Nome_da_Fila |
Fila do diário |
$ MachineName\QueueName\Diário |
Fila do diário do computador |
$ MachineName\Diário |
fila de mensagens mortas do computador |
$ MachineName\Deadletter |
fila de mensagens mortas transacional do computador |
$ MachineName\XactDeadletter |
Você pode usar "." para o nome da computador local, para que "YourMachine\MyQueue" é equivalente a ". \MyQueue".
Estas são algumas advertências sobre como usar um caminho para se referir a suas filas:
Quando o controlador de domínio em um servidor de enfileirar de mensagens recebe uma operação para uma fila que é citada pelo caminho, ele deve resolver o caminho e determinar o nome de formato da fila em questão.Isso pode resultar em desempenho um pouco mais lento do que se você se referir a fila por nome de formato diretamente.
Se você está criando o componente a ser usado sistema autônomo um XML Web Services, será exibida sistema autônomo melhores resultados de desempenho usando o método de nome de formato de sistema autônomo fazer referência a filas, em vez do método de caminho.
Você não pode fazer referência a uma fila pelo caminho para enviar mensagens para ele quando a fila está desconectada.Mensagens desconectadas devem ser enviadas usando o nome de formato.
Você pode recuperar o caminho para uma fila, consultando e combinando os resultados de retorno de duas propriedades separadas no MessageQueue classe base — a MachineName propriedade e o QueueName propriedade.
No código, fazendo referência a uma fila pelo caminho fica assim:
MessageQueue1.Path = "YourMachine\MyQueue"
MessageQueue1.Path = @"YourMachine\MyQueue";
Observação: |
---|
O @ ".\ MinhaFila "sintaxe de translation from VPE for Csharp é equivalente a usar".\\MyQueue"em vez disso.O @ sinal indica uma seqüência de caracteres literal.Para obter mais informações, consulte Cadeia de Caracteres (Referência C#). |
Usando o nome do formato para uma fila, consulte
Os nomes de formato assumem a forma de uma seqüência de caracteres que indica se uma fila é pública ou particular, seguido por um GUID gerado para a fila e outros identificadores sistema autônomo necessário.A tabela a seguir lista as informações de caminho usadas para cada tipo de fila:
Tipo de fila |
Sintaxe usado no nome do formato |
---|---|
Fila pública |
FORMATNAME:PUBLIC = QueueGUID |
Fila particular |
FORMATNAME:particular = MachineGUID\QueueNumber |
Fila do diário |
FORMATNAME:PUBLIC = QueueGUID; Diário - ou - FORMATNAME:particular = MachineGUID\QueueNumber; Diário |
Você não atribuir um nome de formato a uma fila; em vez disso, o Gerenciador de filas gera este valor quando a fila é criada.Fazendo referência a uma fila por seu nome de formato é a maneira mais direta acesso uma fila, porque o controlador de domínio no servidor não tem que interpretar a referência, sistema autônomo quando você se referir à fila pelo caminho.
A seguir estão algumas dicas sobre fazendo referência a suas filas por nome de formato:
Se você pretende enviar mensagens para uma fila desconectada, você precisa referir-se para a fila pelo nome de formato em vez de caminho, como o caminho não será disponível para resolver com se a fila está off-line.
Esteja ciente de que os nomes de formato podem se tornar inválidos quando a topografia de rede é alterada ou quando uma fila é excluída e recriada.
Você pode recuperar um nome de formato para uma fila consultando o FormatName propriedade no MessageQueue classe.
No código, fazendo referência a uma fila por nome de formato é semelhante a:
MessageQueue1.Path = _
"FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75"
MessageQueue1.Path =
"FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75";
Usar rótulos para filas, consulte
Você também pode se referir a uma fila por seu rótulo, que é um rótulo de texto descritivo para a fila recebeu seu administrador.Rótulos não são sempre exclusivos, portanto, você receberá uma mensagem de erro se existir algum conflito de nome quando você tenta se conectar a uma fila específica usando o seu rótulo.
Rótulos podem ser úteis em uma situação quando souber que você vai ser movendo uma fila de um computador para outro.Se você se referir à fila por rótulo somente, todas as operações continuarão a funcionar com êxito após a fila de ter sido movida para o novo local, desde que existem outras filas de com esse rótulo no novo computador.Se houver, a Send método produzirá um erro.
Você pode recuperar o rótulo para uma fila consultando o Label propriedade no MessageQueue classe.
No código, fazendo referência a uma fila pelo nome do rótulo fica assim:
MessageQueue1.Path = "LABEL:MyQueue"
MessageQueue1.Path = "LABEL:MyQueue";
Consulte também
Tarefas
Como: Criar instâncias de componentes do MessageQueue