NetMsmqBinding 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í.
Representa un enlace en cola adecuado para la comunicación entre equipos.
public ref class NetMsmqBinding : System::ServiceModel::MsmqBindingBase
public class NetMsmqBinding : System.ServiceModel.MsmqBindingBase
type NetMsmqBinding = class
inherit MsmqBindingBase
Public Class NetMsmqBinding
Inherits MsmqBindingBase
- Herencia
Ejemplos
El ejemplo siguiente muestra cómo configurar un servicio para utilizar el enlace NetMsmqBinding.
En primer lugar, el archivo de configuración.
Después, el código de servicio real.
// 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. Para obtener una explicación de estas características, consulte Información general sobre colas.
Se trata de uno de los enlaces proporcionados por el sistema proporcionados por 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.
Constructores
NetMsmqBinding() |
Inicializa una nueva instancia de la clase NetMsmqBinding. |
NetMsmqBinding(NetMsmqSecurityMode) |
Inicializa una nueva instancia de la clase NetMsmqBinding mediante el modo de seguridad especificado. |
NetMsmqBinding(String) |
Inicializa una nueva instancia de la clase NetMsmqBinding 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) |
EnvelopeVersion |
Obtiene la versión de SOAP que se utiliza para los mensajes procesados por este enlace. |
ExactlyOnce |
Obtiene o establece un valor que indica si los mensajes procesados por este enlace se reciben una sola vez. (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. |
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) |
QueueTransferProtocol |
Obtiene o define un valor de enumeración que indica el transporte del canal de comunicación en cola que este enlace utiliza. |
ReaderQuotas |
Obtiene o establece el objeto XmlDictionaryReaderQuotas que está asociado con este enlace. |
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 o establece el objeto NetMsmqSecurity que está asociado 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) |
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) |
UseActiveDirectory |
Obtiene o establece un valor booleano que indica si las direcciones de la cola deben convertirse utilizando Active Directory. |
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 una colección ordenada de los elementos de enlace contenidos en el enlace actual. |
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) |
ShouldSerializeReaderQuotas() |
Devuelve un valor que indica si la propiedad ReaderQuotas ha cambiado respecto de su valor predeterminado y se debe serializar. |
ShouldSerializeSecurity() |
Devuelve un valor que indica si la propiedad Security ha cambiado respecto de su valor predeterminado y se debe serializar. |
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) |