Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Define un enlace que proporciona compatibilidad con la puesta en cola mediante el enrutamiento de mensajes a través de MSMQ.
<configuración>
<system.serviceModel>
<Enlaces>
<customBinding>
<encuadernación>
<msmqIntegrationBinding>
Syntax
<msmqIntegrationBinding>
<binding closeTimeout="TimeSpan"
customDeadLetterQueue="Uri"
deadLetterQueue="Uri"
durable="Boolean"
exactlyOnce="Boolean"
maxReceivedMessageSize="Integer"
maxRetryCycles="Integer"
name="String"
openTimeout="TimeSpan"
receiveContextEnabled="Boolean"
receiveErrorHandling="Drop/Fault/Move/Reject"
receiveTimeout="TimeSpan"
receiveRetryCount="Integer"
retryCycleDelay="TimeSpan"
sendTimeout="TimeSpan"
serializationFormat="XML/Binary/ActiveX/ByteArray/Stream"
timeToLive="TimeSpan"
useMsmqTracing="Boolean"
useSourceJournal="Boolean">
</binding>
</msmqIntegrationBinding>
Atributos y elementos
En las secciones siguientes se describen los atributos, los elementos secundarios y los elementos primarios.
Attributes
| Atributo | Description |
|---|---|
| closeTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de cierre. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
| customDeadLetterQueue | URI que contiene la ubicación de la cola de mensajes fallidos por aplicación, donde se colocan los mensajes que han expirado o que han producido errores de transferencia o entrega. La cola de mensajes fallidos es una cola en el administrador de colas de la aplicación de envío para los mensajes expirados que no se pudieron entregar. El URI especificado por CustomDeadLetterQueue debe usar el esquema net.msmq. |
| deadLetterQueue | Valor DeadLetterQueue.value que especifica qué tipo de cola de mensajes no enviados se va a usar, si existe. Una cola de mensajes fallidos es la ubicación en la que se transferirán los mensajes que no se pudieron entregar a la aplicación. Para los mensajes que requieren la garantía exactlyOnce (es decir, el exactlyOnce atributo se establece trueen ), este atributo tiene como valor predeterminado la cola de mensajes fallidos transaccionales de todo el sistema en MSMQ.Para los mensajes que no requieren garantías, este atributo tiene nullcomo valor predeterminado . |
| Durable | Valor booleano que indica si el mensaje es duradero o volátil en la cola. Un mensaje duradero sobrevive a un bloqueo del administrador de colas, mientras que un mensaje volátil no lo hace. Los mensajes volátiles son útiles cuando las aplicaciones requieren una menor latencia y pueden tolerar mensajes perdidos ocasionales. Si el exactlyOnce atributo se establece trueen , los mensajes deben ser duraderos. El valor predeterminado es true. |
| exactlyOnce | Valor booleano que indica si cada mensaje se entrega solo una vez. A continuación, el remitente recibirá una notificación de los errores de entrega. Cuando durable es false, este atributo se omite y los mensajes se transfieren sin garantía de entrega. El valor predeterminado es true. Para obtener más información, consulte ExactlyOnce. |
| maxReceivedMessageSize | Entero positivo que define el tamaño máximo del mensaje, en bytes, incluidos los encabezados, procesados por este enlace. El remitente de un mensaje que supere este límite recibirá un error soap. El receptor quita el mensaje y crea una entrada del evento en el registro de seguimiento. El valor predeterminado es 65536. Este límite en el tamaño del mensaje está pensado para limitar la exposición a ataques por denegación de servicio (DoS). |
| maxRetryCycles | Entero que indica el número de ciclos de reintento utilizados por la característica de detección de mensajes dudosos. Un mensaje se convierte en un mensaje dudoso cuando se produce un error en todos los intentos de entrega de todos los ciclos. El valor predeterminado es 2. Para obtener más información, consulte MaxRetryCycles. |
| nombre | Cadena que contiene el nombre de configuración del enlace. Este valor debe ser único porque se usa como identificación para el enlace. A partir de .NET Framework 4, los enlaces y los comportamientos no son necesarios para tener un nombre. Para obtener más información sobre la configuración predeterminada y los enlaces y comportamientos sin nombre, vea Configuración simplificada y Configuración simplificada para servicios WCF. |
| openTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación abierta. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
| receiveErrorHandling | Valor ReceiveErrorHandling que especifica cómo se controlan los mensajes dudosos y no que no se pueden detectar. |
| receiveRetryCount | Entero que especifica el número máximo de reintentos inmediatos que el administrador de colas debe intentar si se produce un error en la transmisión de un mensaje de la cola de aplicaciones a la aplicación. Si se alcanza el número máximo de intentos de entrega y la aplicación no accede al mensaje, el mensaje se envía a una cola de reintento para volver a entregarlo más adelante. La cantidad de tiempo antes de que el mensaje se transfiera de nuevo a la cola de envío se controla mediante retryCycleDelay. Si los ciclos de reintento alcanzan el maxRetryCycles valor, el mensaje se envía a la cola de mensajes dudosos o se devuelve una confirmación negativa al remitente. |
| receiveTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de recepción. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:10:00. |
| receiveContextEnabled | Valor booleano que especifica si el contexto de recepción para procesar mensajes en colas está habilitado. Cuando se establece trueen , un servicio puede "ver" un mensaje en la cola para empezar a procesarlo y, si algo va mal y se produce una excepción, permanece en la cola. Los servicios también pueden "bloquear" mensajes para reintentar el procesamiento en un momento posterior. ReceiveContext proporciona un mecanismo para "completar" el mensaje una vez procesado para que se pueda quitar de la cola. Los mensajes ya no se leen y se vuelven a escribir en colas a través de la red, y los mensajes individuales no se rebotan en distintas instancias de servicio durante el procesamiento. |
| retryCycleDelay | Valor TimeSpan que especifica el retraso de tiempo entre los ciclos de reintento al intentar entregar un mensaje que no se pudo entregar inmediatamente. El valor define solo el tiempo de espera mínimo porque el tiempo de espera real puede ser mayor. El valor predeterminado es 00:30:00. Para obtener más información, consulte RetryCycleDelay. |
| sendTimeout | Valor TimeSpan que especifica el intervalo de tiempo proporcionado para que se complete una operación de envío. Este valor debe ser mayor o igual que Zero. El valor predeterminado es 00:01:00. |
| serializationFormat | Define el formato usado para la serialización del cuerpo del mensaje. Este atributo es de tipo MsmqMessageSerializationFormat. |
| timeToLive | Valor TimeSpan que especifica cuánto tiempo son válidos los mensajes antes de que expiren y se coloquen en la cola de mensajes fallidos. El valor predeterminado es 1.00:00:00. Este atributo se establece para asegurarse de que los mensajes sensibles al tiempo no se vuelven obsoletos antes de que las aplicaciones receptoras los procesen. Se dice que ha expirado un mensaje de una cola que no consume la aplicación receptora dentro del intervalo de tiempo especificado. Los mensajes expirados se envían a una cola especial denominada cola de mensajes fallidos. La ubicación de la cola de mensajes fallidos se establece con el DeadLetterQueue atributo o con el valor predeterminado adecuado, en función de las garantías. |
| useMsmqTracing | Valor booleano que especifica si se deben realizar seguimientos de los mensajes procesados por este enlace. El valor predeterminado es false. Cuando se habilita el seguimiento, los mensajes de informe se crean y envían a la cola de informes cada vez que el mensaje sale o llega a un equipo de Message Queuing. |
| useSourceJournal | Un valor booleano que especifica las copias de los mensajes procesados por este enlace se deben almacenar en el diario de origen. El valor predeterminado es false.Las aplicaciones en cola que desean mantener un registro de los mensajes que han dejado la cola saliente del equipo pueden copiar los mensajes en una cola de diario. Una vez que un mensaje deja la cola saliente y se recibe una confirmación de que el mensaje se recibió en el equipo de destino, se mantiene una copia del mensaje en la cola del diario del sistema del equipo de envío. |
{serializationFormat} Atributo
| Importancia | Description |
|---|---|
| XML | Formato XML |
| Binary | Formato binario |
| ActiveX | Formato ActiveX |
| Bytearray | Serializa el objeto en una matriz de bytes. |
| Flujo | Cuerpo con formato de secuencia |
Elementos secundarios
| Elemento | Description |
|---|---|
| <seguridad> | Define la configuración de seguridad para el enlace. Este elemento es de tipo MsmqIntegrationSecurityElement. |
Elementos primarios
| Elemento | Description |
|---|---|
| <Enlaces> | Este elemento contiene una colección de enlaces estándar y personalizados. |
Observaciones
Este elemento de enlace se puede usar para permitir que las aplicaciones de Windows Communication Foundation (WCF) envíen y reciban mensajes de las aplicaciones MSMQ existentes que usan las API nativas COM, MSMQ o los tipos definidos en el System.Messaging espacio de nombres Puede usar este elemento de configuración para especificar formas de abordar la cola, las garantías de transferencia, si los mensajes deben almacenarse de forma duradera, y cómo se deben proteger y autenticar los mensajes. Para obtener más información, vea How to: Exchange Messages with WCF Endpoints and Message Queuing Applications.
Example
<configuration>
<system.ServiceModel>
<bindings>
<msmqIntegrationBinding>
<binding closeTimeout="00:00:10"
openTimeout="00:00:20"
receiveTimeout="00:00:30"
sendTimeout="00:00:40"
deadLetterQueue="net.msmq://localhost/blah"
durable="true"
exactlyOnce="true"
maxReceivedMessageSize="1000"
maxImmediateRetries="11"
maxRetryCycles="12"
poisonMessageHandling="Disabled"
rejectAfterLastRetry="false"
retryCycleDelay="00:05:55"
timeToLive="00:11:11"
useSourceJournal="true"
useMsmqTracing="true"
serializationFormat="Binary">
<security mode="None" />
</binding>
</msmqIntegrationBinding>
</bindings>
</system.ServiceModel>
</configuration>