MsmqIntegrationBinding Classe

Definição

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

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 desta classe quando você tiver dados não confiáveis é um risco à segurança. Chame os métodos dessa classe somente quando você tiver 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 aplicativos MSMQ existentes que usam APIs COM, C++ nativas ou os tipos definidos no System.Messaging namespace.

Construtores

MsmqIntegrationBinding()

Inicializa uma nova instância da classe MsmqIntegrationBinding.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Inicializa uma nova instância da classe MsmqIntegrationBinding usando o MsmqIntegrationSecurityMode especificado.

MsmqIntegrationBinding(String)

Inicializa uma nova instância da classe MsmqIntegrationBinding das configurações de um elemento de associação de configuração especificado.

Propriedades

CloseTimeout

Obtém ou define o intervalo concedido 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 de cada aplicativo, em que são colocadas as mensagens que expiraram ou que tiveram uma falha de transferência ou de entrega.

(Herdado de MsmqBindingBase)
DeadLetterQueue

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

(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 esta associação.

(Herdado de MsmqBindingBase)
MaxRetryCycles

Obtém ou define o número máximo de ciclos de novas tentativas de repetição para entregar as mensagens ao aplicativo de destino.

(Herdado de MsmqBindingBase)
MessageVersion

Obtém a versão de 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 de XML da associação.

(Herdado de Binding)
OpenTimeout

Obtém ou define o intervalo concedido 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 do contexto de recebimento é solicitado.

(Herdado de MsmqBindingBase)
ReceiveErrorHandling

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

(Herdado de MsmqBindingBase)
ReceiveRetryCount

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

(Herdado de MsmqBindingBase)
ReceiveTimeout

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

(Herdado de Binding)
RetryCycleDelay

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

(Herdado de MsmqBindingBase)
Scheme

Retorna o esquema para esta associação.

(Herdado de MsmqBindingBase)
Security

Obtém o MsmqIntegrationSecurity associado a esta associação.

SendTimeout

Obtém ou define o intervalo concedido para uma operação ser concluída antes de o transporte gerar 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 ficar 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 de 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 ficará bloqueada pelo recurso de contexto de recebimento.

(Herdado de MsmqBindingBase)

Métodos

BuildChannelFactory<TChannel>(BindingParameterCollection)

Cria a pilha de fábricas 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ábricas 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 canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados por uma coleção de parâmetros de associação.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Cria o ouvinte de canais no serviço que aceita um tipo de canal especificado e que satisfaz os recursos especificados.

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

Retorna um valor que indica se a associação atual pode criar uma pilha de fábricas de canais no cliente que satisfaz 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ábricas de canais no cliente que satisfaz os 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 canais 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 canais no serviço que satisfaça os critérios especificados em uma matriz de objetos.

(Herdado de Binding)
CreateBindingElements()

Retorna os elementos de associação na pilha de perfil básico.

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 tipado 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 Object atual.

(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

IBindingRuntimePreferences.ReceiveSynchronously

Obtém um valor que indica se a maneira mais eficiente de manipular as solicitações de entrada é a síncrona ou a assíncrona.

(Herdado de MsmqBindingBase)

Aplica-se a