MsmqIntegrationBinding Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La clase MsmqIntegrationBinding asigna mensajes Microsoft Message Queuing (MSMQ) a 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
Ejemplos
El siguiente fragmento de archivo de configuración muestra cómo configurar el MsmqIntegrationBinding enlace en el cliente:
El siguiente fragmento de archivo de configuración muestra cómo configurar el MsmqIntegrationBinding enlace en el servicio:
[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
En el código siguiente se muestra cómo usar el MsmqIntegrationBinding enlace en el servicio mediante programación:
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
En el código siguiente se muestra cómo usar el MsmqIntegrationBinding enlace en el cliente mediante programación:
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 es 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 DE MSMQ existentes que usen API com, C++ nativas o los tipos definidos en el System.Messaging espacio de nombres.
Constructores
| Nombre | Description |
|---|---|
| MsmqIntegrationBinding() |
Inicializa una nueva instancia de la clase MsmqIntegrationBinding. |
| MsmqIntegrationBinding(MsmqIntegrationSecurityMode) |
Inicializa una nueva instancia de la MsmqIntegrationBinding clase mediante el especificado MsmqIntegrationSecurityMode. |
| MsmqIntegrationBinding(String) |
Inicializa una nueva instancia de la MsmqIntegrationBinding clase a partir de la configuración de un elemento de enlace de configuración especificado. |
Propiedades
| Nombre | Description |
|---|---|
| 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 fallidos para cada aplicación, donde se colocan los mensajes que han expirado o que han producido errores de transferencia o entrega. (Heredado de MsmqBindingBase) |
| DeadLetterQueue |
Obtiene o establece un valor de enumeración que indica el tipo de cola de mensajes fallidos 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 exactamente una vez. (Heredado de MsmqBindingBase) |
| MaxReceivedMessageSize |
Obtiene o establece el tamaño máximo, en bytes, de un mensaje procesado por 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 del mensaje utilizada por 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 se abra una conexión 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 controlan los mensajes dudosos. (Heredado de MsmqBindingBase) |
| ReceiveRetryCount |
Obtiene o establece el número máximo de intentos de entrega inmediatos en un mensaje leído de la cola de aplicaciones. (Heredado de MsmqBindingBase) |
| ReceiveTimeout |
Obtiene o establece el intervalo de tiempo que una conexión puede permanecer inactiva, durante la cual no se recibe ningún mensaje de aplicación, antes de quitarla. (Heredado de Binding) |
| RetryCycleDelay |
Obtiene o establece un valor que indica el retraso de tiempo entre 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 el MsmqIntegrationSecurity objeto asociado a este enlace. |
| SendTimeout |
Obtiene o establece el intervalo de tiempo proporcionado para que se complete una operación de escritura antes de que el transporte genere una excepción. (Heredado de Binding) |
| SerializationFormat |
Obtiene o establece el formato de serialización que se usará 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 que expiren. (Heredado de MsmqBindingBase) |
| UseMsmqTracing |
Obtiene o establece un valor que indica si se deben realizar seguimientos de los mensajes procesados por este enlace. (Heredado de MsmqBindingBase) |
| UseSourceJournal |
Obtiene o establece un valor que indica si las copias de los mensajes procesados por este enlace deben almacenarse en la cola del diario de origen. (Heredado de MsmqBindingBase) |
| ValidityDuration |
Obtiene o establece un valor que especifica la duración que bloqueará un mensaje la característica de contexto de recepción. (Heredado de MsmqBindingBase) |
Métodos
| Nombre | Description |
|---|---|
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
Compila la pila de generador de canales en el cliente que crea un tipo de canal especificado y que satisface las características especificadas por una colección de parámetros de enlace. (Heredado de Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Compila la pila del generador de canales en el cliente que crea un tipo de canal especificado y que satisface las características especificadas por una matriz de objetos. (Heredado de Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Compila el agente de escucha de canal en el servicio que acepta un tipo de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que 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 de canal especificado y que satisface las características especificadas. (Heredado de Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Devuelve un valor que indica si el enlace actual puede crear una pila de generador de canales en el cliente que satisfaga la colección de parámetros de enlace especificados. (Heredado de Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Devuelve un valor que indica si el enlace actual puede crear una pila de generador de canales en el cliente que cumpla los requisitos especificados por una matriz de objetos. (Heredado de Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Devuelve un valor que indica si el enlace actual puede crear una pila del agente de escucha de canal en el servicio que satisface la colección de parámetros de enlace especificados. (Heredado de Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Devuelve un valor que indica si el enlace actual puede crear una pila del agente de escucha de canal en el servicio que cumpla los criterios especificados en una matriz de objetos. (Heredado de Binding) |
| CreateBindingElements() |
Devuelve los elementos de enlace de la pila de perfiles básica. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetProperty<T>(BindingParameterCollection) |
Devuelve un objeto con tipo solicitado, si está presente, de la capa adecuada en la pila de enlace. (Heredado de Binding) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ShouldSerializeName() |
Devuelve si se debe serializar el nombre del enlace. (Heredado de Binding) |
| ShouldSerializeNamespace() |
Devuelve si se debe serializar el espacio de nombres del enlace. (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
| Nombre | Description |
|---|---|
| IBindingRuntimePreferences.ReceiveSynchronously |
Obtiene un valor que indica si las solicitudes entrantes se pueden controlar de forma más eficaz de forma sincrónica o asincrónica. (Heredado de MsmqBindingBase) |