<sendMessageChannelCache>
Un comportamiento del servicio que permite personalizar los niveles de uso compartido de la memoria caché, la configuración de la memoria caché del generador de canales y la de la memoria caché del canal para los flujos de trabajo que envían mensajes a los extremos de servicio utilizando las actividades de mensajería de Enviar.
<configuration>
<system.ServiceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<sendMessageChannelCache>
Sintaxis
<behaviors>
<serviceBehaviors>
<behavior name="String">
<sendMessageChannelCache allowUnsafeCaching="Boolean">
<channelSettings idleTimeout="TimeSpan"
leaseTimeout="TimeSpan"
maxItemsInCache="Integer" />
<factorySettings idleTimeout="TimeSpan"
leaseTimeout="TimeSpan"
maxItemsInCache="Integer" />
</sendMessageChannelCache>
</behavior>
</serviceBehaviors>
</behaviors>
Atributos y elementos
En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.
Atributos
Atributo | Descripción |
---|---|
allowUnsafeCaching | Un valor booleano que indica si debe activarse el almacenamiento en la memoria caché. Si su servicio de flujo de trabajo tiene enlaces personalizados o los comportamientos personalizados, el almacenamiento en la memoria caché podría no ser seguro y, por consiguiente, está deshabilitado de forma predeterminada. Sin embargo, si desea activar el almacenamiento en memoria caché, establezca esta propiedad en el valor true. |
Elementos secundarios
Elemento | Descripción |
---|---|
<channelSettings> | Especifica los valores de la memoria caché del canal. |
<factorySettings> | Especifica los valores de la memoria caché del generador de canales. |
Elementos primarios
Elemento | Descripción |
---|---|
<comportamiento> de <serviceBehaviors> | Especifica un elemento de comportamiento. |
Comentarios
Este comportamiento del servicio está orientado para los flujos de trabajo que envían mensajes a los extremos de servicio. Estos flujos de trabajo son normalmente flujos de trabajo del cliente pero podrían ser también servicios de flujo de trabajo que se hospedan en WorkflowServiceHost.
De manera predeterminada, en un flujo de trabajo hospedado por WorkflowServiceHost, la memoria caché usada por las actividades de mensajería de Send se comparte en todas las instancias de flujo de trabajo en WorkflowServiceHost (el almacenamiento en caché de nivel de host). Para un flujo de trabajo del cliente que no esté hospedado por WorkflowServiceHost, la memoria caché está solo disponible para la instancia de flujo de trabajo (almacenamiento en caché en el nivel de instancia). El almacenamiento en la memoria caché está deshabilitado de forma predeterminada para cualquier actividad de envío del flujo de trabajo que tenga definidos extremos en su configuración.
Para obtener más información sobre cómo cambiar los niveles de uso compartido de la memoria caché y los valores de almacenamiento en caché predeterminados del generador de canales y la caché de canales, vea Cambiar los niveles de uso compartido de caché para actividades Send.
Ejemplo
En un servicio de flujo de trabajo hospedado, puede especificar la configuración de la memoria caché del generador y del canal en el archivo de configuración de la aplicación. Para ello, agregue un comportamiento de servicio que contenga los valores de memoria caché para el generador y memoria caché del canal, y agregue este comportamiento de servicio a su servicio. En el siguiente ejemplo se muestra el contenido de un archivo de configuración que contiene el comportamiento del servicio MyChannelCacheBehavior
con la configuración personalizada del generador de canales y la caché de canales. Este comportamiento del servicio se agrega al servicio por medio del atributo behaviorConfiguration
.
<configuration>
<system.serviceModel>
<!-- List of other config sections here -->
<behaviors>
<serviceBehaviors>
<behavior name="MyChannelCacheBehavior">
<sendMessageChannelCache allowUnsafeCaching ="false" >
<!-- Control only the host level settings -->
<factorySettings maxItemsInCache = "8" idleTimeout = "00:05:00" leaseTimeout="10:00:00" />
<channelSettings maxItemsInCache = "32" idleTimeout = "00:05:00" leaseTimeout="00:06:00" />
</sendMessageChannelCache>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="MyService" behaviorConfiguration="MyChannelCacheBehavior" />
</services>
</system.serviceModel>
</configuration>