Поделиться через


<sendMessageChannelCache>

Поведение службы, которое позволяет изменить уровни доступа к кэшу, параметры кэша фабрики канала и параметры кэша канала для рабочих процессов, которые отправляют сообщения в конечные точки служб с использованием действий отправки сообщений.

<Конфигурации>
  <Системы. Servicemodel>
    <Поведения>
      <serviceBehaviors>
        <Поведение>
          <sendMessageChannelCache>

Синтаксис

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

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание
allowUnsafeCaching Логическое значение, указывающее, следует ли включить кэширование. Если служба рабочего процесса имеет пользовательские привязки или поведения, то кэширование может оказаться небезопасным (и будет отключено по умолчанию). Однако если вы хотите включить кэширование, задайте для этого свойства значение true.

Дочерние элементы

Элемент Описание
<channelSettings> Указывает параметры кэша канала.
<factorySettings> Указывает параметры кэша фабрики канала.

Родительские элементы

Элемент Описание
<<поведение> serviceBehaviors> Указывает элемент поведения.

Комментарии

Это поведение службы предназначено для рабочих процессов, отправляющих сообщения в конечные точки служб. Эти рабочие процессы обычно являются клиентскими, но также могут быть службами рабочих процессов, размещенными в WorkflowServiceHost.

По умолчанию в рабочем процессе, размещенном в WorkflowServiceHost, кэш, используемый действиями обмена сообщениями Send, совместно используется всеми экземплярами рабочих процессов в WorkflowServiceHost (кэширование уровня узла). Для клиентского рабочего процесса, не размещенного в WorkflowServiceHost, кэш доступен только для экземпляра рабочего процесса (кэширование уровня экземпляра). По умолчанию кэширование отключено для всех действий отправки в рабочем процессе, в конфигурации которого определены конечные точки.

Дополнительные сведения об изменении уровней общего доступа к кэшу по умолчанию и параметров кэша для фабрики каналов и кэша каналов см. в разделе Изменение уровней общего доступа к кэшу для действий отправки.

Пример

В размещенной службе рабочего процесса в файле конфигурации приложения можно указать параметры кэша фабрики и канала. Для этого необходимо создать поведение службы, содержащее параметры для кэша фабрики и канала, и добавить это поведение в службу. В следующем примере показано содержимое файла конфигурации, содержащего MyChannelCacheBehavior поведение службы с настраиваемыми параметрами кэша фабрики и кэша каналов. Это поведение службы добавляется в службу с помощью атрибута 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>  

См. также раздел