<sendMessageChannelCache>
Ein Dienstverhalten, das es ermöglicht, die Cachefreigabeebenen anzupassen sowie die Einstellungen des Channelfactorycaches und des Channelcaches für Workflows festzulegen, die Meldungen mit Senden-Messagingaktivitäten an Dienstendpunkte senden.
<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>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.
Attribute
attribute | BESCHREIBUNG |
---|---|
allowUnsafeCaching | Ein boolescher Wert, der angibt, ob das Zwischenspeichern aktiviert ist. Wenn der Workflowdienst benutzerdefinierte Bindungen oder benutzerdefiniertes Verhalten aufweist, könnte das Zwischenspeichern unsicher sein und ist daher standardmäßig deaktiviert. Wenn Sie das Zwischenspeichern jedoch aktivieren möchten, dann legen Sie diese Eigenschaft auf true fest. |
Untergeordnete Elemente
Element | BESCHREIBUNG |
---|---|
<channelSettings> | Gibt die Einstellungen des Channelcaches an. |
<factorySettings> | Gibt die Einstellungen des Channelfactorycaches an. |
Übergeordnete Elemente
Element | BESCHREIBUNG |
---|---|
<behavior> von <serviceBehaviors> | Gibt ein Verhaltenselement an. |
Bemerkungen
Dieses Dienstverhalten ist für Workflows bestimmt, die Meldungen an Dienstendpunkte senden. Diese Workflows sind in der Regel Clientworkflows, könnten jedoch auch Workflowdienste sein, die in einem WorkflowServiceHost gehostet werden.
Standardmäßig wird in einem von einem WorkflowServiceHost gehosteten Workflow der von Send-Messagingaktivitäten verwendete Cache von allen Workflowinstanzen im WorkflowServiceHost (Zwischenspeichern auf Hostebene) gemeinsam verwendet. Bei einen Clientworkflow, der nicht von einem WorkflowServiceHost gehostet wird, steht der Cache nur der Workflowinstanz zur Verfügung (Zwischenspeichern auf Instanzebene). In einem Workflow, der in der Konfiguration definierte Endpunkte besitzt, ist das Zwischenspeichern für jede Sendeaktivität standardmäßig deaktiviert.
Weitere Informationen dazu, wie die Standardebenen für die Cachefreigabe und die Cacheeinstellungen für die Kanalfactory und den Kanalcache geändert werden, finden Sie unter Ändern der Cachefreigabeebenen für Sendeaktivitäten.
Beispiel
In einem gehosteten Workflowdienst können Sie die Einstellungen für den Factorycache und den Channelcache in der Anwendungskonfigurationsdatei angeben. Fügen Sie dafür ein Dienstverhalten hinzu, das die Cacheeinstellungen für die Factory und den Channelcache enthält, und fügen Sie dieses Dienstverhalten dem Dienst hinzu. Das folgende Beispiel zeigt den Inhalt einer Konfigurationsdatei, die das MyChannelCacheBehavior
-Dienstverhalten mit dem benutzerdefinierten Factorycache und den Kanalcacheeinstellungen enthält. Dieses Dienstverhalten wird dem Dienst mithilfe des behaviorConfiguration
-Attributs hinzugefügt.
<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>