MsmqIntegrationBinding Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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) |