MsmqIntegrationBinding Classe

Definição

A classe MsmqIntegrationBinding mapeia mensagens Microsoft MSMQ (Enfileiramento de Mensagens) para mensagens Windows Communication Foundation (WCF).

public ref class MsmqIntegrationBinding : System::ServiceModel::MsmqBindingBase
public class MsmqIntegrationBinding : System.ServiceModel.MsmqBindingBase
type MsmqIntegrationBinding = class
    inherit MsmqBindingBase
Public Class MsmqIntegrationBinding
Inherits MsmqBindingBase
Herança
MsmqIntegrationBinding

Exemplos

O snippet de arquivo de configuração a seguir ilustra como configurar a MsmqIntegrationBinding associação no cliente:

O snippet de arquivo de configuração a seguir ilustra como configurar a MsmqIntegrationBinding associação no serviço:

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
<ServiceContract(Namespace:="http:'Microsoft.ServiceModel.Samples")> _
<ServiceKnownType(GetType(PurchaseOrder))> _
Public Interface IOrderProcessor
    <OperationContract(IsOneWay:=True, Action:="*")> _
    Sub SubmitPurchaseOrder(ByVal msg As MsmqMessage(Of PurchaseOrder))
End Interface

O código a seguir ilustra como usar a MsmqIntegrationBinding associação no serviço programaticamente:

public class OrderProcessorService : IOrderProcessor
{
    [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
    public void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> ordermsg)
    {
        PurchaseOrder po = (PurchaseOrder)ordermsg.Body;
        Random statusIndexer = new Random();
        po.Status = (OrderStates)statusIndexer.Next(3);
        Console.WriteLine("Processing {0} ", po);
    }

    // Host the service within this EXE console application.
public static void Main()
{
    // Get base address from appsettings in configuration.
    Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);

    // Create a ServiceHost for the CalculatorService type and provide the base address.
    using (ServiceHost serviceHost = new ServiceHost(typeof(IOrderProcessor), 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("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
        serviceHost.Close();
    }
}
}
Public Class OrderProcessorService
    Implements IOrderProcessor

    <OperationBehavior(TransactionScopeRequired:=True, TransactionAutoComplete:=True)> _
    Public Sub SubmitPurchaseOrder(ByVal ordermsg As MsmqMessage(Of PurchaseOrder)) Implements IOrderProcessor.SubmitPurchaseOrder
        Dim po As PurchaseOrder = ordermsg.Body
        Dim statusIndexer As New Random()
        po.Status = statusIndexer.Next(3)
        Console.WriteLine("Processing {0} ", po)
    End Sub
End Class

O código a seguir ilustra como usar a MsmqIntegrationBinding associação no cliente programaticamente:

MsmqIntegrationBinding binding = new MsmqIntegrationBinding();
EndpointAddress address = new EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders");
ChannelFactory<IOrderProcessor> channelFactory = new ChannelFactory<IOrderProcessor>(binding, address);
IOrderProcessor channel = channelFactory.CreateChannel();

PurchaseOrder po = new PurchaseOrder();
po.customerId = "somecustomer.com";
po.poNumber = Guid.NewGuid().ToString();

PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.productId = "Blue Widget";
lineItem1.quantity = 54;
lineItem1.unitCost = 29.99F;

PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.productId = "Red Widget";
lineItem2.quantity = 890;
lineItem2.unitCost = 45.89F;

po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;

MsmqMessage<PurchaseOrder> ordermsg = new MsmqMessage<PurchaseOrder>(po);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
    channel.SubmitPurchaseOrder(ordermsg);
    scope.Complete();
}
Console.WriteLine("Order has been submitted:{0}", po);
Dim binding As New MsmqIntegrationBinding()
Dim address As New EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders")
Dim channelFactory As New ChannelFactory(Of IOrderProcessor)(binding, address)
Dim channel As IOrderProcessor = channelFactory.CreateChannel()

Dim po As New PurchaseOrder()
po.customerId = "somecustomer.com"
po.poNumber = Guid.NewGuid().ToString()

Dim lineItem1 As New PurchaseOrderLineItem()
lineItem1.productId = "Blue Widget"
lineItem1.quantity = 54
lineItem1.unitCost = 29.99F

Dim lineItem2 = New PurchaseOrderLineItem()
lineItem2.productId = "Red Widget"
lineItem2.quantity = 890
lineItem2.unitCost = 45.89F

Dim lineItems(1) As PurchaseOrderLineItem
lineItems(0) = lineItem1
lineItems(1) = lineItem2

po.orderLineItems = lineItems

Dim ordermsg As MsmqMessage(Of PurchaseOrder) = New MsmqMessage(Of PurchaseOrder)(po)
Using scope As New TransactionScope(TransactionScopeOption.Required)
    channel.SubmitPurchaseOrder(ordermsg)
    scope.Complete()
End Using
Console.WriteLine("Order has been submitted:{0}", po)

Comentários

Importante

Chamar métodos dessa classe com dados não confiáveis é um risco à segurança. Chame os métodos dessa classe apenas com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Essa associação pode ser usada para permitir que aplicativos WCF enviem e recebam mensagens de e para aplicativos MSMQ existentes que usam COM, APIs C++ nativas ou os tipos definidos no System.Messaging namespace.

Construtores

Nome Description
MsmqIntegrationBinding()

Inicializa uma nova instância da classe MsmqIntegrationBinding.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Inicializa uma nova instância da MsmqIntegrationBinding classe usando a especificada MsmqIntegrationSecurityMode.

MsmqIntegrationBinding(String)

Inicializa uma nova instância da classe das MsmqIntegrationBinding 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)
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)
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)
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 o MsmqIntegrationSecurity 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)
SerializationFormat

Obtém ou define o formato de serialização a ser usado para serializar ou desserializar a mensagem.

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)
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 os elementos de associação na pilha de perfil básica.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(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)
ShouldSerializeSecurity()

Obtém um valor que especifica se as informações de segurança devem ser serializadas.

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