Compartir vía


MsmqIntegrationBinding Clase

Definición

Mensajes de Microsoft Message Queuing (MSMQ) de los mapas de clase MsmqIntegrationBinding a los mensajes 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
Herencia
MsmqIntegrationBinding

Ejemplos

El fragmento de código del archivo de configuración siguiente muestra cómo configurar el enlace MsmqIntegrationBinding en el cliente:

El fragmento de código del archivo de configuración siguiente muestra cómo configurar el enlace MsmqIntegrationBinding en el servidor:

[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

El código siguiente muestra cómo utilizar el enlace MsmqIntegrationBinding mediante programación en el servicio:

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

El código siguiente muestra cómo utilizar el enlace MsmqIntegrationBinding mediante programación en el cliente:

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)

Comentarios

Importante

Llamar a métodos de esta clase con datos que no son de confianza supone un riesgo de seguridad. Llame a los métodos de esta clase solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

Este enlace se puede usar para permitir que las aplicaciones WCF envíen y reciban mensajes hacia y desde aplicaciones MSMQ existentes que usan API de C++ com, nativas o los tipos definidos en el System.Messaging espacio de nombres.

Constructores

MsmqIntegrationBinding()

Inicializa una nueva instancia de la clase MsmqIntegrationBinding.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Inicializa una nueva instancia de la clase MsmqIntegrationBinding utilizando el objeto MsmqIntegrationSecurityMode especificado.

MsmqIntegrationBinding(String)

Inicializa una nueva instancia de la clase MsmqIntegrationBinding a partir de los valores de un elemento de enlace de configuración especificado.

Propiedades

CloseTimeout

Obtiene o establece el intervalo de tiempo proporcionado para que una conexión se cierre antes de que el transporte genere una excepción.

(Heredado de Binding)
CustomDeadLetterQueue

Obtiene o establece un URI que contiene la ubicación de la cola de mensajes con problemas de entrega de cada aplicación, donde se colocan los mensajes que han expirado o cuya transferencia o envío ha fallado.

(Heredado de MsmqBindingBase)
DeadLetterQueue

Obtiene o establece un valor de enumeración que indica el tipo de cola de componentes con problemas de entrega que se va a usar.

(Heredado de MsmqBindingBase)
Durable

Obtiene o establece un valor que indica si los mensajes procesados por este enlace son duraderos o volátiles.

(Heredado de MsmqBindingBase)
ExactlyOnce

Obtiene o establece un valor que indica si los mensajes procesados por este enlace se reciben una sola vez.

(Heredado de MsmqBindingBase)
MaxReceivedMessageSize

Obtiene o establece el tamaño máximo, en bytes, para un mensaje que procesa este enlace.

(Heredado de MsmqBindingBase)
MaxRetryCycles

Obtiene o establece el número máximo de ciclos de reintento para intentar la entrega de mensajes a la aplicación receptora.

(Heredado de MsmqBindingBase)
MessageVersion

Obtiene la versión de mensaje utilizada por los clientes y servicios configurados con el enlace.

(Heredado de Binding)
Name

Obtiene o establece el nombre del enlace.

(Heredado de Binding)
Namespace

Obtiene o establece el espacio de nombres XML del enlace.

(Heredado de Binding)
OpenTimeout

Obtiene o establece el intervalo de tiempo proporcionado para que una conexión se abra antes de que el transporte genere una excepción.

(Heredado de Binding)
ReceiveContextEnabled

Obtiene o establece un valor que indica si se solicita el comportamiento del contexto de recepción.

(Heredado de MsmqBindingBase)
ReceiveErrorHandling

Obtiene o establece un valor de enumeración que especifica cómo se administran los mensajes dudosos.

(Heredado de MsmqBindingBase)
ReceiveRetryCount

Obtiene o establece el número máximo de intentos de entrega inmediata en un mensaje que se lee desde la cola de la aplicación.

(Heredado de MsmqBindingBase)
ReceiveTimeout

Obtiene o establece el intervalo de tiempo que una conexión puede permanecer inactiva, durante el cual no se recibe ningún mensaje de la aplicación, antes de interrumpir la conexión.

(Heredado de Binding)
RetryCycleDelay

Obtiene o establece un valor que indica el tiempo de retardo entre los ciclos de reintento al intentar entregar un mensaje que no se puede entregar inmediatamente.

(Heredado de MsmqBindingBase)
Scheme

Devuelve el esquema de este enlace.

(Heredado de MsmqBindingBase)
Security

Obtiene MsmqIntegrationSecurity que se asocia con este enlace.

SendTimeout

Obtiene o establece el intervalo de tiempo proporcionado para que una operación de escritura se complete antes de que el transporte genere una excepción.

(Heredado de Binding)
SerializationFormat

Obtiene o establece el formato de serialización que se va a utilizar para serializar o deserializar el mensaje.

TimeToLive

Obtiene o establece el intervalo de tiempo que indica cuánto tiempo pueden estar en la cola los mensajes procesados por este enlace antes de expirar.

(Heredado de MsmqBindingBase)
UseMsmqTracing

Obtiene o establece un valor que indica si se debe realizar un seguimiento de los mensajes procesados por este enlace.

(Heredado de MsmqBindingBase)
UseSourceJournal

Obtiene o establece un valor que indica si las copias de mensajes procesados por este enlace deberían almacenarse en la cola de diario de origen.

(Heredado de MsmqBindingBase)
ValidityDuration

Obtiene o establece un valor que especifica el período de tiempo que la característica de contexto de recepción bloqueará un mensaje.

(Heredado de MsmqBindingBase)

Métodos

BuildChannelFactory<TChannel>(BindingParameterCollection)

Compila la pila de generador de canales en el cliente que crea un tipo especificado de canal y satisface las características especificadas por una colección de parámetros de enlace.

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

Compila la pila de generador de canales en el cliente que crea un tipo especificado de canal y eso satisface las características especificadas por una matriz de objetos.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y eso satisface las características especificadas por una colección de parámetros de enlace.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas.

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

Devuelve un valor que indica si el enlace actual puede compilar una pila de generador de canales en el cliente que satisfaga la colección especificada de parámetros de enlace.

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

Devuelve un valor que indica si el enlace actual puede compilar una pila de generador de canales en el cliente que satisfaga los requisitos especificados por una matriz de objetos.

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

Devuelve un valor que indica si el enlace actual puede compilar un agente de escucha de canal en el servicio que satisfaga la colección especificada de parámetros de enlace.

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

Devuelve un valor que indica si el enlace actual puede compilar un agente de escucha de canal en el servicio que satisfaga la colección especificada de parámetros de enlace.

(Heredado de Binding)
CreateBindingElements()

Devuelve los elementos de enlace en la pila del perfil básica.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

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

Devuelve un objeto escrito solicitado de la capa adecuada en la pila de enlace si está presente.

(Heredado de Binding)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ShouldSerializeName()

Devuelve un valor si se debe serializar el nombre del enlace.

(Heredado de Binding)
ShouldSerializeNamespace()

Devuelve un valor si se debe serializar el espacio de nombres.

(Heredado de Binding)
ShouldSerializeSecurity()

Obtiene un valor que especifica si se debe serializar la información de seguridad.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IBindingRuntimePreferences.ReceiveSynchronously

Obtiene un valor que indica si se pueden administrar más eficazmente las solicitudes entrantes de forma sincrónica o asincrónica.

(Heredado de MsmqBindingBase)

Se aplica a