Dela via


<sendMessageChannelCache>

Ett tjänstbeteende som möjliggör anpassning av cachedelningsnivåerna, inställningarna för kanalfabrikens cacheminne och inställningarna för kanalcachen för arbetsflöden som skickar meddelanden till tjänstslutpunkter med hjälp av skicka meddelandeaktiviteter.

<Konfiguration>
  <System. ServiceModel>
    <Beteenden>
      <serviceBehaviors>
        <Beteende>
          <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>  

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attribut

Attribut Beskrivning
allowUnsafeCaching Ett booleskt värde som anger om cachelagring ska aktiveras. Om arbetsflödestjänsten har anpassade bindningar eller anpassade beteenden kan cachelagring vara osäker och därför inaktiveras som standard. Men om du vill aktivera cachelagring anger du den här egenskapen till true.

Underordnade element

Element Beskrivning
<channelSettings> Anger inställningarna för kanalcachen.
<factorySettings> Anger inställningarna för kanalfabrikens cacheminne.

Överordnade element

Element Beskrivning
<beteende> för <serviceBehaviors> Anger ett beteendeelement.

Kommentarer

Det här tjänstbeteendet är avsett för arbetsflöden som skickar meddelanden till tjänstslutpunkter. Dessa arbetsflöden är vanligtvis klientarbetsflöden men kan också vara arbetsflödestjänster som finns i en WorkflowServiceHost.

Som standard delas cachen som används av Send meddelandeaktiviteter mellan alla arbetsflödesinstanser i (cachelagring på WorkflowServiceHost värdnivå) i ett arbetsflöde som hanteras av en WorkflowServiceHost. För ett klientarbetsflöde som inte hanteras av en WorkflowServiceHostär cachen endast tillgänglig för arbetsflödesinstansen (cachelagring på instansnivå). Cachelagring är inaktiverat som standard för alla sändningsaktiviteter i arbetsflödet som har slutpunkter som definierats i konfigurationen.

Mer information om hur du ändrar standardnivåerna för cachedelning och cacheinställningar för kanalfabriken och kanalcachen finns i Ändra cachedelningsnivåer för skicka aktiviteter.

Exempel

I en värdbaserad arbetsflödestjänst kan du ange inställningarna för fabrikscache och kanalcache i programkonfigurationsfilen. Om du vill göra det lägger du till ett tjänstbeteende som innehåller cacheinställningarna för fabriks- och kanalcacheminnet och lägger till det här tjänstbeteendet i din tjänst. I följande exempel visas innehållet i en konfigurationsfil som innehåller MyChannelCacheBehavior tjänstbeteendet med inställningarna för anpassad fabrikscache och kanalcache. Det här tjänstbeteendet läggs till i tjänsten via attributet 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>  

Se även