Condividi tramite


<sendMessageChannelCache>

Comportamento del servizio che consente la personalizzazione dei livelli di condivisione della cache, delle impostazioni della cache della channel factory e delle impostazioni della cache del canale per flussi di lavoro che inviano messaggi a endpoint di servizio utilizzando attività della messaggistica di invio.

<Configurazione>
  <Sistema. Servicemodel>
    <Comportamenti>
      <Servicebehaviors>
        <Comportamento>
          <sendMessageChannelCache>

Sintassi

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

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
allowUnsafeCaching Valore booleano che indica se attivare la memorizzazione nella cache. Se il servizio flusso di lavoro dispone di associazioni o comportamenti personalizzati, la memorizzazione nella cache potrebbe non essere sicura e pertanto essere disabilitata per impostazione predefinita. Se tuttavia si vuole attivare la memorizzazione nella cache, impostare questa proprietà su true.

Elementi figlio

Elemento Descrizione
<channelSettings> Specifica le impostazioni della cache del canale.
<factorySettings> Specifica le impostazioni della cache della channel factory.

Elementi padre

Elemento Descrizione
<comportamento> di <serviceBehaviors> Specifica un elemento di comportamento.

Commenti

Questo comportamento del servizio è designato per flussi di lavoro che inviano messaggi a endpoint di servizio. Questi sono in genere flussi di lavoro del client ma potrebbero essere anche servizi del flusso di lavoro ospitati in un oggetto WorkflowServiceHost.

Per impostazione predefinita, in un flusso di lavoro ospitato da un oggetto WorkflowServiceHost, la cache usata da attività di messaggistica Send è condivisa attraverso tutte le istanze del flusso di lavoro in WorkflowServiceHost (memorizzazione nella cache a livello di host). Per un flusso di lavoro del client che non è ospitato da un oggetto WorkflowServiceHost, la cache è disponibile solo all'istanza del flusso di lavoro (memorizzazione nella cache a livello di istanza). Per impostazione predefinita, la memorizzazione nella cache è disabilitata per qualsiasi attività di invio nel flusso di lavoro che dispone di endpoint definiti nella configurazione.

Per altre informazioni su come modificare i livelli di condivisione cache predefiniti e le impostazioni della cache per la channel factory e la cache del canale, vedere Modifica dei livelli di condivisione cache per le attività di invio.

Esempio

In un servizio flusso di lavoro ospitato è possibile specificare le impostazioni della cache della factory e della cache del canale nel file di configurazione dell'applicazione. A tale scopo, aggiungere un comportamento del servizio contenente le impostazioni della cache della factory e del canale e aggiungere tale comportamento al servizio. Nell'esempio seguente viene illustrato il contenuto di un file di configurazione che contiene il MyChannelCacheBehavior comportamento del servizio con le impostazioni della cache della factory e della cache del canale personalizzate. Questo comportamento del servizio viene aggiunto al servizio tramite l'attributo 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>  

Vedi anche