NetMsmqBinding Classe

Definição

Representa uma associação enfileirada que é 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 a seguir mostra como configurar um serviço para usar a NetMsmqBinding associação.

Primeiro, o arquivo de configuração.

Em seguida, o código de serviço real.

// 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

Comentários

A NetMsmqBinding associação fornece suporte para enfileiramento usando o MSMQ (Enfileiramento de Mensagens) como transporte e habilita o suporte para aplicativos acoplados livremente, isolamento de falhas, nivelamento de carga e operações desconectadas. Para obter uma discussão sobre esses recursos, consulte a Visão geral das filas.

Essa é uma das associações fornecidas pelo sistema fornecidas pelo WCF (Windows Communication Foundation). O procedimento recomendado é definir a associação usando valores de configuração e não usar uma abordagem baseada em código, exceto em determinados cenários avançados em que os valores de configuração devem ser definidos como um serviço é inicializado.

Construtores

Nome Description
NetMsmqBinding()

Inicializa uma nova instância da classe NetMsmqBinding.

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 classe das NetMsmqBinding configurações de um elemento de associação de configuração especificado.

Propriedades

Nome Description
CloseTimeout

Obtém ou define o intervalo de tempo fornecido para que uma conexão seja fechada antes que o transporte gere uma exceção.

(Herdado de Binding)
CustomDeadLetterQueue

Obtém ou define um URI que contém o local da fila de mensagens mortas para cada aplicativo, em que as mensagens que expiraram ou que falharam na transferência ou entrega são colocadas.

(Herdado de MsmqBindingBase)
DeadLetterQueue

Obtém ou define um valor de enumeração que indica o tipo de fila de mensagens mortas a ser usada.

(Herdado de MsmqBindingBase)
Durable

Obtém ou define um valor que indica se as mensagens processadas por essa associação são duráveis ou voláteis.

(Herdado de MsmqBindingBase)
EnvelopeVersion

Obtém a versão do SOAP que é usada para mensagens processadas por essa associação.

ExactlyOnce

Obtém ou define um valor que indica se as mensagens processadas por essa associaçã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 gerenciador 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 essa associação.

(Herdado de MsmqBindingBase)
MaxRetryCycles

Obtém ou define o número máximo de ciclos de repetição para tentar a entrega de mensagens para o aplicativo receptor.

(Herdado de MsmqBindingBase)
MessageVersion

Obtém a versão da mensagem usada por clientes e serviços configurados com a associação.

(Herdado de Binding)
Name

Obtém ou define o nome da associação.

(Herdado de Binding)
Namespace

Obtém ou define o namespace XML da associação.

(Herdado de Binding)
OpenTimeout

Obtém ou define o intervalo de tempo fornecido para que uma conexão seja aberta antes que o transporte gere uma exceção.

(Herdado de Binding)
QueueTransferProtocol

Obtém ou define um valor de enumeração que indica o transporte de canal de comunicação enfileirado que essa associação usa.

ReaderQuotas

Obtém ou define o XmlDictionaryReaderQuotas que está associado a essa associação.

ReceiveContextEnabled

Obtém ou define um valor que indica se o comportamento de contexto de recebimento é solicitado.

(Herdado de MsmqBindingBase)
ReceiveErrorHandling

Obtém ou define um valor de enumeração que especifica como as mensagens suspeitas são tratadas.

(Herdado de MsmqBindingBase)
ReceiveRetryCount

Obtém ou define o número máximo de tentativas de entrega imediata em uma mensagem lida da fila do aplicativo.

(Herdado de MsmqBindingBase)
ReceiveTimeout

Obtém ou define o intervalo de tempo em que uma conexão pode permanecer inativa, durante a qual nenhuma mensagem de aplicativo é recebida, antes de ser descartada.

(Herdado de Binding)
RetryCycleDelay

Obtém ou define um valor que indica o atraso de tempo entre os ciclos de repetição ao tentar entregar uma mensagem que não pode ser entregue imediatamente.

(Herdado de MsmqBindingBase)
Scheme

Retorna o esquema dessa associação.

(Herdado de MsmqBindingBase)
Security

Obtém ou define o NetMsmqSecurity que está associado a essa associação.

SendTimeout

Obtém ou define o intervalo de tempo fornecido para que uma operação de gravação seja concluída antes que o transporte gere uma exceção.

(Herdado de Binding)
TimeToLive

Obtém ou define o intervalo de tempo que indica por quanto tempo as mensagens processadas por essa associação podem estar na fila antes de expirarem.

(Herdado de MsmqBindingBase)
UseActiveDirectory

Obtém ou define um valor que indica se os endereços de fila devem ser convertidos usando o Active Directory.

UseMsmqTracing

Obtém ou define um valor que indica se as mensagens processadas por essa associação devem ser rastreadas.

(Herdado de MsmqBindingBase)
UseSourceJournal

Obtém ou define um valor que indica se as cópias das mensagens processadas por essa associação devem ser armazenadas na fila do diário de origem.

(Herdado de MsmqBindingBase)
ValidityDuration

Obtém ou define um valor que especifica a duração em que uma mensagem será bloqueada pelo recurso de contexto de recebimento.

(Herdado de MsmqBindingBase)

Métodos

Nome Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

Cria a pilha de fábrica de canais no cliente que cria um tipo de canal especificado e que satisfaz os recursos especificados por uma coleção de parâmetros de associação.

(Herdado de Binding)
BuildChannelFactory<TChannel>(Object[])

Cria a pilha de fábrica de canais no cliente que cria um tipo de canal especificado e que satisfaz os recursos especificados por uma matriz de objetos.

(Herdado de Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados por uma coleção de parâmetros de associação.

(Herdado de Binding)
BuildChannelListener<TChannel>(Object[])

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Cria o ouvinte de canal no serviço que aceita um tipo de canal especificado e que atende aos recursos especificados.

(Herdado de Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Retorna um valor que indica se a associação atual pode criar uma pilha de fábrica de canais no cliente que satisfaça a coleção de parâmetros de associação especificados.

(Herdado de Binding)
CanBuildChannelFactory<TChannel>(Object[])

Retorna um valor que indica se a associação atual pode criar uma pilha de fábrica de canais no cliente que atenda aos requisitos especificados por uma matriz de objetos.

(Herdado de Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Retorna um valor que indica se a associação atual pode criar uma pilha de ouvintes de canal no serviço que satisfaça a coleção de parâmetros de associação especificados.

(Herdado de Binding)
CanBuildChannelListener<TChannel>(Object[])

Retorna um valor que indica se a associação atual pode criar uma pilha de ouvintes de canal no serviço que atenda aos critérios especificados em uma matriz de objetos.

(Herdado de Binding)
CreateBindingElements()

Retorna uma coleção ordenada de elementos de associação contidos na associação atual.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetProperty<T>(BindingParameterCollection)

Retorna um objeto digitado solicitado, se presente, da camada apropriada na pilha de associação.

(Herdado de Binding)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ShouldSerializeName()

Retorna se o nome da associação deve ser serializado.

(Herdado de Binding)
ShouldSerializeNamespace()

Retorna se o namespace da associação deve ser serializado.

(Herdado de Binding)
ShouldSerializeReaderQuotas()

Retorna um valor que indica se a ReaderQuotas propriedade foi alterada de seu valor padrão e deve ser serializada.

ShouldSerializeSecurity()

Retorna um valor que indica se a Security propriedade foi alterada de seu valor padrão e deve ser serializada.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IBindingRuntimePreferences.ReceiveSynchronously

Obtém um valor que indica se as solicitações de entrada podem ser tratadas de forma mais eficiente de forma síncrona ou assíncrona.

(Herdado de MsmqBindingBase)

Aplica-se a