NetMsmqBinding Clase

Definición

Representa un enlace en cola adecuado para la comunicación entre equipos.Represents a queued binding that is suitable for cross-machine communication.

public ref class NetMsmqBinding : System::ServiceModel::MsmqBindingBase
public class NetMsmqBinding : System.ServiceModel.MsmqBindingBase
type NetMsmqBinding = class
    inherit MsmqBindingBase
Public Class NetMsmqBinding
Inherits MsmqBindingBase
Herencia
NetMsmqBinding

Ejemplos

El ejemplo siguiente muestra cómo configurar un servicio para utilizar el enlace NetMsmqBinding.The following example shows how to configure a service to use the NetMsmqBinding binding.

En primer lugar, el archivo de configuración.First, the configuration file.

Después, el código de servicio real.Next, the actual service code.

// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IQueueCalculator
{
    [OperationContract(IsOneWay=true)]
    void Add(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Subtract(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Multiply(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Divide(double n1, double n2);
}
' Define a service contract. 
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface IQueueCalculator
    <OperationContract(IsOneWay:=True)> _
    Sub Add(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Subtract(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Multiply(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Divide(ByVal n1 As Double, ByVal n2 As Double)
End Interface
// Service class that implements the service contract.
// Added code to write output to the console window
public class CalculatorService : IQueueCalculator
{
    [OperationBehavior]
    public void Add(double n1, double n2)
    {
        double result = n1 + n2;
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Subtract(double n1, double n2)
    {
        double result = n1 - n2;
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Multiply(double n1, double n2)
    {
        double result = n1 * n2;
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Divide(double n1, double n2)
    {
        double result = n1 / n2;
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result);
    }
}
' Service class that implements the service contract.
' Added code to write output to the console window
Public Class CalculatorService
    Implements IQueueCalculator
    <OperationBehavior> _
    Public Sub Add(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Add
        Dim result As Double = n1 + n2
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Subtract(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Subtract
        Dim result As Double = n1 - n2
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Multiply(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Multiply
        Dim result As Double = n1 * n2
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Divide(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Divide
        Dim result As Double = n1 / n2
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result)
    End Sub
End Class
// This is the hosting application. This code can appear directly in the service class as well.
class HostApp
{
    // Host the service within this EXE console application.
    public static void Main()
    {
        // Get MSMQ queue name from appsettings in configuration.
        string queueName = ConfigurationManager.AppSettings["queueName"];

        // Create the transacted MSMQ queue if necessary.
        if (!MessageQueue.Exists(queueName))
            MessageQueue.Create(queueName, true);

        // Get the base address that is used to listen for WS-MetaDataExchange requests.
        // This is useful to generate a proxy for the client.
        string baseAddress = ConfigurationManager.AppSettings["baseAddress"];

        // Create a ServiceHost for the CalculatorService type.
        using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), new Uri(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("Press <ENTER> to terminate service.");
            Console.WriteLine();
            Console.ReadLine();

            // Close the ServiceHostBase to shutdown the service.
            serviceHost.Close();
        }
    }
}
' This is the hosting application. This code can appear directly in the service class as well.
Friend Class HostApp
    ' Host the service within this EXE console application.
    Public Shared Sub Main()
        ' Get MSMQ queue name from appsettings in configuration.
        Dim queueName As String = ConfigurationManager.AppSettings("queueName")

        ' Create the transacted MSMQ queue if necessary.
        If (Not MessageQueue.Exists(queueName)) Then
            MessageQueue.Create(queueName, True)
        End If

        ' Get the base address that is used to listen for WS-MetaDataExchange requests.
        ' This is useful to generate a proxy for the client.
        Dim baseAddress As String = ConfigurationManager.AppSettings("baseAddress")

        ' Create a ServiceHost for the CalculatorService type.
        Using serviceHost As New ServiceHost(GetType(CalculatorService), New Uri(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("Press <ENTER> to terminate service.")
            Console.WriteLine()
            Console.ReadLine()

            ' Close the ServiceHostBase to shutdown the service.
            serviceHost.Close()
        End Using
    End Sub
End Class

Comentarios

El enlace NetMsmqBinding proporciona compatibilidad para poner en cola utilizando Message Queuing (MSMQ) como transporte y también para aplicaciones acopladas, aislamiento de errores, equilibrio de carga y operaciones desconectadas.The NetMsmqBinding binding provides support for queuing by using Message Queuing (MSMQ) as a transport and enables support for loosely-coupled applications, failure isolation, load leveling and disconnected operations. Para obtener una descripción de estas características, consulte información general sobre colas.For a discussion of these features, see Queues Overview.

Éste es uno de los enlaces proporcionados por el sistema que proporciona Windows Communication Foundation (WCF).This is one of the system-provided bindings provided by Windows Communication Foundation (WCF). El procedimiento recomendado es definir el enlace mediante los valores de configuración y no utilizar un enfoque basado en el código, excepto en ciertos escenarios avanzados donde se deben establecer los valores de configuración cuando se inicializa un servicio.The recommended procedure is to define the binding using configuration values and not to use a code-based approach, except in certain advanced scenarios where configuration values must be set as a service is initialized.

Constructores

NetMsmqBinding()

Inicializa una nueva instancia de la clase NetMsmqBinding.Initializes a new instance of the NetMsmqBinding class.

NetMsmqBinding(NetMsmqSecurityMode)

Inicializa una nueva instancia de la clase NetMsmqBinding mediante el modo de seguridad especificado.Initializes a new instance of the NetMsmqBinding class using the specified security mode.

NetMsmqBinding(String)

Inicializa una nueva instancia de la clase NetMsmqBinding a partir de los valores de un elemento de enlace de configuración especificado.Initializes a new instance of the NetMsmqBinding class from the settings of a specified configuration binding element.

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.Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

(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.Gets or sets a URI that contains the location of the dead-letter queue for each application, where messages that have expired or that have failed transfer or delivery are placed.

(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.Gets or sets an enumeration value that indicates the type of dead-letter queue to use.

(Heredado de MsmqBindingBase)
Durable

Obtiene o establece un valor que indica si los mensajes procesados por este enlace son duraderos o volátiles.Gets or sets a value that indicates whether the messages processed by this binding are durable or volatile.

(Heredado de MsmqBindingBase)
EnvelopeVersion

Obtiene la versión de SOAP que se utiliza para los mensajes procesados por este enlace.Gets the version of SOAP that is used for messages processed by this binding.

ExactlyOnce

Obtiene o establece un valor que indica si los mensajes procesados por este enlace se reciben una sola vez.Gets or sets a value that indicates whether messages processed by this binding are received exactly once.

(Heredado de MsmqBindingBase)
MaxBufferPoolSize

Obtiene o establece la cantidad de memoria máxima que se asigna para el uso por el administrador de búfer de mensajes que recibe mensajes del canal.Gets or sets the maximum amount of memory that is allocated for use by the message buffer manager that receives messages from the channel.

MaxReceivedMessageSize

Obtiene o establece el tamaño máximo, en bytes, para un mensaje que procesa este enlace.Gets or sets the maximum size, in bytes, for a message that is processed by this binding.

(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.Gets or sets the maximum number of retry cycles to attempt delivery of messages to the receiving application.

(Heredado de MsmqBindingBase)
MessageVersion

Obtiene la versión de mensaje utilizada por los clientes y servicios configurados con el enlace.Gets the message version used by clients and services configured with the binding.

(Heredado de Binding)
Name

Obtiene o establece el nombre del enlace.Gets or sets the name of the binding.

(Heredado de Binding)
Namespace

Obtiene o establece el espacio de nombres XML del enlace.Gets or sets the XML namespace of the binding.

(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.Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

(Heredado de Binding)
QueueTransferProtocol

Obtiene o define un valor de enumeración que indica el transporte del canal de comunicación en cola que este enlace utiliza.Gets or sets an enumeration value that indicates the queued communication channel transport that this binding uses.

ReaderQuotas

Obtiene o establece el objeto XmlDictionaryReaderQuotas que está asociado con este enlace.Gets or sets the XmlDictionaryReaderQuotas that is associated with this binding.

ReceiveContextEnabled

Obtiene o establece un valor que indica si se solicita el comportamiento del contexto de recepción.Gets or sets a value that indicates whether the receive context behavior is requested.

(Heredado de MsmqBindingBase)
ReceiveErrorHandling

Obtiene o establece un valor de enumeración que especifica cómo se administran los mensajes dudosos.Gets or sets an enumeration value that specifies how poison messages are handled.

(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.Gets or sets the maximum number of immediate delivery attempts on a message that is read from the application queue.

(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.Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

(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.Gets or sets a value that indicates the time delay between retry cycles when attempting to deliver a message that cannot be delivered immediately.

(Heredado de MsmqBindingBase)
Scheme

Devuelve el esquema de este enlace.Returns the scheme for this binding.

(Heredado de MsmqBindingBase)
Security

Obtiene o establece el objeto NetMsmqSecurity que está asociado con este enlace.Gets or sets the NetMsmqSecurity that is associated with this binding.

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.Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.

(Heredado de Binding)
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.Gets or sets the interval of time that indicates how long the messages processed by this binding can be in the queue before they expire.

(Heredado de MsmqBindingBase)
UseActiveDirectory

Obtiene o establece un valor booleano que indica si las direcciones de la cola deben convertirse utilizando Active Directory.Gets or sets a value that indicates whether queue addresses should be converted using Active Directory.

UseMsmqTracing

Obtiene o establece un valor que indica si se debe realizar un seguimiento de los mensajes procesados por este enlace.Gets or sets a value that indicates whether messages processed by this binding should be traced.

(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.Gets or sets a value that indicates whether copies of messages processed by this binding should be stored in the source journal queue.

(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.Gets or sets a value that specifies the duration a message will be locked by the receive context feature.

(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.Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(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.Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

(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.Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

(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.Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

(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.Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

(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.Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

(Heredado de Binding)
CreateBindingElements()

Devuelve una colección ordenada de los elementos de enlace contenidos en el enlace actual.Returns an ordered collection of binding elements contained in the current binding.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

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

Devuelve un objeto escrito solicitado de la capa adecuada en la pila de enlace si está presente.Returns a typed object requested, if present, from the appropriate layer in the binding stack.

(Heredado de Binding)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ShouldSerializeName()

Devuelve un valor si se debe serializar el nombre del enlace.Returns whether the name of the binding should be serialized.

(Heredado de Binding)
ShouldSerializeNamespace()

Devuelve un valor si se debe serializar el espacio de nombres.Returns whether the namespace of the binding should be serialized.

(Heredado de Binding)
ShouldSerializeReaderQuotas()

Devuelve un valor que indica si la propiedad ReaderQuotas ha cambiado respecto de su valor predeterminado y se debe serializar.Returns a value that indicates whether the ReaderQuotas property has changed from its default value and should be serialized.

ShouldSerializeSecurity()

Devuelve un valor que indica si la propiedad Security ha cambiado respecto de su valor predeterminado y se debe serializar.Returns a value that indicates whether the Security property has changed from its default value and should be serialized.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(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.Gets a value that indicates whether incoming requests can be handled more efficiently synchronously or asynchronously.

(Heredado de MsmqBindingBase)

Se aplica a