NetMsmqBinding Classe

Definição

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
NetMsmqBinding

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)

Aplica-se a