<sendMessageChannelCache>

Un comportamiento de servicio que permite la personalización de los niveles de uso compartido de caché, la configuración de la caché del generador de canales y la configuración de la caché del canal para los flujos de trabajo que envían mensajes a los puntos de conexión de servicio mediante actividades de envío de mensajería.

<configuration>
  <system.ServiceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <sendMessageChannelCache>

Syntax

<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.

Attributes

Atributo Description
allowUnsafeCaching Valor booleano que indica si se va a activar el almacenamiento en caché. Si el servicio de flujo de trabajo tiene enlaces personalizados o comportamientos personalizados, el almacenamiento en caché podría no ser seguro y, por tanto, está deshabilitado de forma predeterminada. Sin embargo, si desea activar el almacenamiento en caché, establezca esta propiedad en true.

Elementos secundarios

Elemento Description
<channelSettings> Especifica la configuración de la caché del canal.
<factorySettings> Especifica la configuración de la caché del generador de canales.

Elementos primarios

Elemento Description
<comportamiento> de <serviceBehaviors> Especifica un elemento de comportamiento.

Observaciones

Este comportamiento de servicio está pensado para flujos de trabajo que envían mensajes a puntos de conexión de servicio. Estos flujos de trabajo suelen ser flujos de trabajo de cliente, pero también pueden ser servicios de flujo de trabajo hospedados en .WorkflowServiceHost

De forma predeterminada, en un flujo de trabajo hospedado por , WorkflowServiceHostla memoria caché usada por Send las actividades de mensajería se comparte en todas las instancias de flujo de trabajo de (almacenamiento en WorkflowServiceHost caché de nivel de host). Para un flujo de trabajo de cliente que no está hospedado por , WorkflowServiceHostla memoria caché solo está disponible para la instancia de flujo de trabajo (almacenamiento en caché de nivel de instancia). El almacenamiento en caché está deshabilitado de forma predeterminada para cualquier actividad de envío en el flujo de trabajo que tenga puntos de conexión definidos en la configuración.

Para obtener más información sobre cómo cambiar los niveles de uso compartido de caché predeterminados y la configuración de caché de caché para el generador de canales y la caché de canales, consulte Cambio de los niveles de uso compartido de caché para actividades de envío.

Example

En un servicio de flujo de trabajo hospedado, puede especificar la caché de fábrica y la configuración de caché del canal en el archivo de configuración de la aplicación. Para ello, agregue un comportamiento de servicio que contenga la configuración de caché de la caché de fábrica y canal y agregue este comportamiento de servicio al servicio. En el ejemplo siguiente se muestra el contenido de un archivo de configuración que contiene el comportamiento del MyChannelCacheBehavior servicio con la caché de fábrica personalizada y la configuración de caché del canal. Este comportamiento de servicio se agrega al servicio a través del behaviorConfiguration atributo .

<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>

Consulte también