NetMsmqBinding Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa uma ligação em fila adequada para comunicação entre máquinas.
public ref class NetMsmqBinding : System::ServiceModel::MsmqBindingBase
public class NetMsmqBinding : System.ServiceModel.MsmqBindingBase
type NetMsmqBinding = class
inherit MsmqBindingBase
Public Class NetMsmqBinding
Inherits MsmqBindingBase
- Herança
Exemplos
O exemplo seguinte mostra como configurar um serviço para usar o NetMsmqBinding binding.
Primeiro, o ficheiro de configuração.
A seguir, o código de serviço propriamente dito.
// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IQueueCalculator
{
[OperationContract(IsOneWay=true)]
void Add(double n1, double n2);
[OperationContract(IsOneWay = true)]
void Subtract(double n1, double n2);
[OperationContract(IsOneWay = true)]
void Multiply(double n1, double n2);
[OperationContract(IsOneWay = true)]
void Divide(double n1, double n2);
}
' Define a service contract.
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface IQueueCalculator
<OperationContract(IsOneWay:=True)> _
Sub Add(ByVal n1 As Double, ByVal n2 As Double)
<OperationContract(IsOneWay := True)> _
Sub Subtract(ByVal n1 As Double, ByVal n2 As Double)
<OperationContract(IsOneWay := True)> _
Sub Multiply(ByVal n1 As Double, ByVal n2 As Double)
<OperationContract(IsOneWay := True)> _
Sub Divide(ByVal n1 As Double, ByVal n2 As Double)
End Interface
// Service class that implements the service contract.
// Added code to write output to the console window
public class CalculatorService : IQueueCalculator
{
[OperationBehavior]
public void Add(double n1, double n2)
{
double result = n1 + n2;
Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result);
}
[OperationBehavior]
public void Subtract(double n1, double n2)
{
double result = n1 - n2;
Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result);
}
[OperationBehavior]
public void Multiply(double n1, double n2)
{
double result = n1 * n2;
Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result);
}
[OperationBehavior]
public void Divide(double n1, double n2)
{
double result = n1 / n2;
Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result);
}
}
' Service class that implements the service contract.
' Added code to write output to the console window
Public Class CalculatorService
Implements IQueueCalculator
<OperationBehavior> _
Public Sub Add(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Add
Dim result As Double = n1 + n2
Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result)
End Sub
<OperationBehavior> _
Public Sub Subtract(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Subtract
Dim result As Double = n1 - n2
Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result)
End Sub
<OperationBehavior> _
Public Sub Multiply(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Multiply
Dim result As Double = n1 * n2
Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result)
End Sub
<OperationBehavior> _
Public Sub Divide(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Divide
Dim result As Double = n1 / n2
Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result)
End Sub
End Class
// This is the hosting application. This code can appear directly in the service class as well.
class HostApp
{
// Host the service within this EXE console application.
public static void Main()
{
// Get MSMQ queue name from appsettings in configuration.
string queueName = ConfigurationManager.AppSettings["queueName"];
// Create the transacted MSMQ queue if necessary.
if (!MessageQueue.Exists(queueName))
MessageQueue.Create(queueName, true);
// Get the base address that is used to listen for WS-MetaDataExchange requests.
// This is useful to generate a proxy for the client.
string baseAddress = ConfigurationManager.AppSettings["baseAddress"];
// Create a ServiceHost for the CalculatorService type.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), new Uri(baseAddress)))
{
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
}
}
' This is the hosting application. This code can appear directly in the service class as well.
Friend Class HostApp
' Host the service within this EXE console application.
Public Shared Sub Main()
' Get MSMQ queue name from appsettings in configuration.
Dim queueName As String = ConfigurationManager.AppSettings("queueName")
' Create the transacted MSMQ queue if necessary.
If (Not MessageQueue.Exists(queueName)) Then
MessageQueue.Create(queueName, True)
End If
' Get the base address that is used to listen for WS-MetaDataExchange requests.
' This is useful to generate a proxy for the client.
Dim baseAddress As String = ConfigurationManager.AppSettings("baseAddress")
' Create a ServiceHost for the CalculatorService type.
Using serviceHost As New ServiceHost(GetType(CalculatorService), New Uri(baseAddress))
' Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
End Using
End Sub
End Class
Observações
A NetMsmqBinding ligação fornece suporte para enfileiramento usando Message Queuing (MSMQ) como transporte e permite suporte para aplicações fracamente acopladas, isolamento de falhas, nivelamento de carga e operações desconectadas. Para uma discussão sobre estas funcionalidades, consulte Visão Geral das Filas.
Este é um dos bindings fornecidos pelo sistema pela Windows Communication Foundation (WCF). O procedimento recomendado é definir a ligação usando valores de configuração e não usar uma abordagem baseada em código, exceto em certos cenários avançados em que os valores de configuração devem ser definidos à medida que um serviço é inicializado.
Construtores
| Name | Description |
|---|---|
| NetMsmqBinding() |
Inicializa uma nova instância da NetMsmqBinding classe. |
| NetMsmqBinding(NetMsmqSecurityMode) |
Inicializa uma nova instância da NetMsmqBinding classe usando o modo de segurança especificado. |
| NetMsmqBinding(String) |
Inicializa uma nova instância da NetMsmqBinding classe a partir das definições de um elemento de ligação de configuração especificado. |
Propriedades
| Name | Description |
|---|---|
| CloseTimeout |
Obtém ou define o intervalo de tempo fornecido para que uma ligação se feche antes de o transporte levantar uma exceção. (Herdado de Binding) |
| CustomDeadLetterQueue |
Recebe ou define um URI que contém a localização da fila de letras mortas para cada aplicação, onde são colocadas mensagens que expiraram ou que falharam na transferência ou entrega. (Herdado de MsmqBindingBase) |
| DeadLetterQueue |
Recebe ou define um valor de enumeração que indica o tipo de fila de letras mortas a utilizar. (Herdado de MsmqBindingBase) |
| Durable |
Recebe ou define um valor que indica se as mensagens processadas por esta ligação são duráveis ou voláteis. (Herdado de MsmqBindingBase) |
| EnvelopeVersion |
Obtém a versão do SOAP usada para mensagens processadas por esta ligação. |
| ExactlyOnce |
Recebe ou define um valor que indica se as mensagens processadas por esta ligação são recebidas exatamente uma vez. (Herdado de MsmqBindingBase) |
| MaxBufferPoolSize |
Obtém ou define a quantidade máxima de memória alocada para uso pelo gestor de buffer de mensagens que recebe mensagens do canal. |
| MaxReceivedMessageSize |
Obtém ou define o tamanho máximo, em bytes, para uma mensagem processada por esta ligação. (Herdado de MsmqBindingBase) |
| MaxRetryCycles |
Obtém ou define o número máximo de ciclos de retentativa para tentar a entrega das mensagens à aplicação recetora. (Herdado de MsmqBindingBase) |
| MessageVersion |
Obtém a versão da mensagem usada por clientes e serviços configurada com a ligação. (Herdado de Binding) |
| Name |
Recebe ou define o nome da ligação. (Herdado de Binding) |
| Namespace |
Obtém ou define o namespace XML do binding. (Herdado de Binding) |
| OpenTimeout |
Obtém ou define o intervalo de tempo fornecido para que uma ligação se abra antes de o transporte levantar uma exceção. (Herdado de Binding) |
| QueueTransferProtocol |
Recebe ou define um valor de enumeração que indica o transporte do canal de comunicação em fila que esta ligação utiliza. |
| ReaderQuotas |
Obtém ou define o XmlDictionaryReaderQuotas que está associado a esta ligação. |
| ReceiveContextEnabled |
Recebe ou define um valor que indica se o comportamento do contexto de receção é solicitado. (Herdado de MsmqBindingBase) |
| ReceiveErrorHandling |
Recebe ou define um valor de enumeração que especifica como as mensagens de veneno são tratadas. (Herdado de MsmqBindingBase) |
| ReceiveRetryCount |
Obtém ou define o número máximo de tentativas imediatas de entrega numa mensagem lida da fila da aplicação. (Herdado de MsmqBindingBase) |
| ReceiveTimeout |
Obtém ou define o intervalo de tempo em que uma ligação pode permanecer inativa, durante o qual não são recebidas mensagens de aplicação, antes de ser cortada. (Herdado de Binding) |
| RetryCycleDelay |
Recebe ou define um valor que indica o atraso temporal entre ciclos de retentativa ao tentar entregar uma mensagem que não pode ser entregue imediatamente. (Herdado de MsmqBindingBase) |
| Scheme |
Devolve o esquema para esta ligação. (Herdado de MsmqBindingBase) |
| Security |
Obtém ou define o NetMsmqSecurity que está associado a esta ligação. |
| SendTimeout |
Obtém ou define o intervalo de tempo fornecido para que uma operação de escrita seja concluída antes de o transporte levantar uma exceção. (Herdado de Binding) |
| TimeToLive |
Obtém ou define o intervalo de tempo que indica quanto tempo as mensagens processadas por esta ligação podem permanecer na fila antes de expirarem. (Herdado de MsmqBindingBase) |
| UseActiveDirectory |
Recebe ou define um valor que indica se os endereços da fila devem ser convertidos usando o Active Directory. |
| UseMsmqTracing |
Obtém ou define um valor que indica se as mensagens processadas por esta ligação devem ser rastreadas. (Herdado de MsmqBindingBase) |
| UseSourceJournal |
Recebe ou define um valor que indica se cópias das mensagens processadas por esta ligação devem ser armazenadas na fila de diário de origem. (Herdado de MsmqBindingBase) |
| ValidityDuration |
Recebe ou define um valor que especifica a duração em que uma mensagem será bloqueada pela funcionalidade de contexto de receção. (Herdado de MsmqBindingBase) |
Métodos
| Name | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
Constrói a pilha de channel factory no cliente que cria um tipo específico de canal e que satisfaz as características especificadas por um conjunto de parâmetros de ligação. (Herdado de Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Constrói a stack de channel factory no cliente que cria um tipo específico de canal e que satisfaz as características especificadas por um array de objetos. (Herdado de Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as características especificadas por um conjunto de parâmetros de ligação. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Object[]) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Constrói o ouvinte de canal no serviço que aceita um tipo específico de canal e que satisfaz as funcionalidades especificadas. (Herdado de Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Devolve um valor que indica se a ligação atual pode construir uma pilha de channel factory no cliente que satisfaz a coleção de parâmetros de ligação especificada. (Herdado de Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Devolve um valor que indica se a ligação atual pode construir uma stack de channel factory no cliente que satisfaz os requisitos especificados por um array de objetos. (Herdado de Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Devolve um valor que indica se a ligação atual pode construir uma pilha de ouvintes de canal no serviço que satisfaz a coleção de parâmetros de ligação especificada. (Herdado de Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Devolve um valor que indica se a ligação atual pode construir uma pilha de ouvintes de canal no serviço que satisfaça os critérios especificados num array de objetos. (Herdado de Binding) |
| CreateBindingElements() |
Devolve uma coleção ordenada de elementos de ligação contidos na ligação atual. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetProperty<T>(BindingParameterCollection) |
Devolve um objeto tipado solicitado, se presente, da camada apropriada na pilha de ligação. (Herdado de Binding) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ShouldSerializeName() |
Devolve se o nome da ligação deve ser serializado. (Herdado de Binding) |
| ShouldSerializeNamespace() |
Devolve se o namespace da ligação deve ser serializado. (Herdado de Binding) |
| ShouldSerializeReaderQuotas() |
Devolve um valor que indica se a ReaderQuotas propriedade mudou em relação ao seu valor padrão e deve ser serializada. |
| ShouldSerializeSecurity() |
Devolve um valor que indica se a Security propriedade mudou em relação ao seu valor padrão e deve ser serializada. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IBindingRuntimePreferences.ReceiveSynchronously |
Obtém um valor que indica se os pedidos recebidos podem ser tratados de forma mais eficiente, síncrona ou assíncrona. (Herdado de MsmqBindingBase) |