次の方法で共有


<sendMessageChannelCache>

キャッシュの共有レベルのカスタマイズや、チャネル ファクトリ キャッシュの設定を可能にするほか、Send メッセージング アクティビティを使用してサービス エンドポイントにメッセージを送信するワークフローのチャネル キャッシュの設定も可能にするサービス動作。

configuration
  <system.ServiceModel>
    behaviors
      <serviceBehaviors>
        behavior
          <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> の <behavior> 動作の要素を指定します。

解説

このサービス動作は、サービス エンドポイントにメッセージを送信するワークフローを対象としています。 これらのワークフローは、通常はクライアント ワークフローですが、WorkflowServiceHost でホストされるワークフロー サービスである場合もあります。

既定では、WorkflowServiceHost によってホストされるワークフローでは、Send メッセージング アクティビティが使用するキャッシュは WorkflowServiceHost のすべてのワークフロー インスタンス間で共有されます (ホストレベルのキャッシュ)。 WorkflowServiceHost によってホストされないクライアント ワークフローの場合、キャッシュを使用できるのはワークフロー インスタンスだけです (インスタンスレベルのキャッシュ)。 構成でエンドポイントが定義されているワークフローに送信アクティビティがある場合、キャッシュは既定で無効になります。

チャネル ファクトリおよびチャネル キャッシュの既定のキャッシュ共有レベルとキャッシュ設定を変更する方法については、「Send アクティビティのキャッシュ共有レベルの変更」を参照してください。

ホストされたワークフロー サービスでは、ファクトリ キャッシュとチャネル キャッシュの設定をアプリケーション構成ファイルで指定できます。 これを行うには、ファクトリ キャッシュおよびチャネル キャッシュのキャッシュ設定を含むサービス動作を追加し、そのサービス動作をサービスに追加します。 次の例は、カスタムのファクトリ キャッシュおよびチャネル キャッシュの設定が指定された 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>  

関連項目