Share via


DispatchRuntime Klasse

Definition

Macht Eigenschaften verfügbar, die verwendet werden können, um das Standardverhalten von Diensten zu ändern und um benutzerdefinierte Objekte anzuhängen, mit denen festgelegt werden kann, wie eingehende Nachrichten in Objekte transformiert und an Dienstvorgänge verteilt werden. Diese Klasse kann nicht vererbt werden.

public ref class DispatchRuntime sealed
public sealed class DispatchRuntime
type DispatchRuntime = class
Public NotInheritable Class DispatchRuntime
Vererbung
DispatchRuntime

Hinweise

Verwenden Sie die DispatchRuntime-Klasse, um entweder das Standardverhalten eines Diensts oder eines einzelnen Endpunkts zu ändern, oder um Objekte einzufügen, die benutzerdefinierte Änderungen für einen oder für beide der folgenden Dienstprozesse implementieren:

  1. Die Transformation eingehender Nachrichten in Objekte und die Freigabe dieser Objekte als Methodenaufrufe in einem Dienstobjekt.

  2. Die Transformation von Objekten, die von der Antwort auf einen Dienstvorgangsaufruf empfangen wurden, in ausgehende Nachrichten.

In Windows Communication Foundation (WCF) sind die Kanal- und Endpunkt-Verteiler die Dienstkomponenten, die für die Annahme neuer Kanäle, empfangen von Nachrichten, Methodenversand und Aufruf und Antwortverarbeitung verantwortlich sind. Jeder von einem ServiceHost-Objekt verfügbar gemachte Endpunkt hat einen Endpunktverteiler und einen zugehörigen Kanalverteiler. Darüber hinaus verfügt jeder Client mit Duplexkommunikation für die einzelnen Rückrufendpunkte ebenfalls über einen Endpunkt- und einen Kanalverteiler.

Die DispatchRuntime-Klasse ermöglicht Ihnen, den Kanal- oder Endpunktverteiler für alle Nachrichten in einem bestimmten Vertrag auch dann abzufangen und zu erweitern, wenn eine Nachricht nicht erkannt wurde. Wenn eine Nachricht eintrifft, die mit keiner im Vertrag deklarierten Nachricht übereinstimmt, wird sie an den Vorgang geleitet, der von der UnhandledDispatchOperation-Eigenschaft zurückgegeben wurde. Informationen dazu, wie ein Verteiler erweitert wird, der alle Nachrichten für einen bestimmten Vorgang abfängt, finden Sie unter der DispatchOperation-Klasse.

Es gibt vier Hauptbereiche der Verteilererweiterbarkeit, die von der DispatchRuntime-Klasse verfügbar gemacht werden:

  1. Verteilerkomponenten verwenden Eigenschaften von DispatchRuntime sowie jene des zugeordneten Kanalverteilers, der von der ChannelDispatcher-Eigenschaft zurückgegeben wird, um festzulegen, wie der Kanalverteiler Kanäle akzeptiert und schließt. Dazu gehören die Eigenschaften ChannelInitializers und InputSessionShutdownHandlers.

  2. Nachrichtenkomponenten werden für jede verarbeitete Nachricht angepasst. Dazu gehören die Eigenschaften MessageInspectors, OperationSelector, Operations und ErrorHandlers.

  3. Instanzkomponenten passen die Erstellung, Lebensdauer und Freigabe von Instanzen des Diensttyps an. Weitere Informationen zur Lebensdauer von Dienstobjekten finden Sie in den Ausführungen zur InstanceContextMode-Eigenschaft. Dazu gehören die Eigenschaften InstanceContextInitializers und InstanceProvider.

  4. Sicherheitsrelevante Komponenten können die folgenden Eigenschaften verwenden:

In der Regel werden benutzerdefinierte Erweiterungsobjekte einer DispatchRuntime-Eigenschaft zugewiesen oder durch ein Dienstverhalten (ein Objekt, das IServiceBehavior implementiert), durch ein Vertragsverhalten (ein Objekt, das IContractBehavior implementiert) oder durch ein Endpunktverhalten (ein Objekt, das IEndpointBehavior implementiert) in eine Auflistung eingefügt. Das installierende Verhaltensobjekt wird dann der entsprechenden Verhaltensauflistung entweder programmgesteuert oder durch Implementierung eines benutzerdefinierten BehaviorExtensionElement-Objekts hinzugefügt, um das Verhalten, das eingefügt werden soll, mithilfe einer Anwendungskonfigurationsdatei zu aktivieren.

Eigenschaften

AutomaticInputSessionShutdown

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob der Dienst eine Eingabesitzung schließt, wenn der Client eine Ausgabesitzung schließt.

CallbackClientRuntime

Ruft das ClientRuntime-Objekt ab, das den Installationspunkt für Erweiterungen für Windows Communication Foundation (WCF) für ausgehende Aufrufe an einen Endpunkt mit Duplexvertrag darstellt.

ChannelDispatcher

Ruft ChannelDispatcher für dieses DispatchRuntime-Objekt ab.

ConcurrencyMode

Ruft ab bzw. legt fest, ob die Instanz eines Diensts Nachrichten sequenziell oder gleichzeitig verarbeitet.

EndpointDispatcher

Ruft EndpointDispatcher für dieses DispatchRuntime-Objekt ab.

EnsureOrderedDispatch

Ruft einen booleschen Wert ab, der angibt, ob Nachrichten in der Reihenfolge abgesendet werden sollen, in der sie gesendet wurden

ExternalAuthorizationPolicies

Ruft die externen Autorisierungsrichtlinien ab, die einen Regelsatz zur Autorisierung eines Benutzers bei einem gegebenen Satz von Ansprüchen definieren, bzw. legt diese fest.

IgnoreTransactionMessageProperty

Ruft ab bzw. legt fest, ob TransactionMessageProperty ignoriert wird.

ImpersonateCallerForAllOperations

Ruft einen Wert ab bzw. legt einen Wert fest, der kontrolliert, ob der Dienst versucht, mithilfe der Anmeldeinformationen der eingehenden Nachricht einen Identitätswechsel durchzuführen.

ImpersonateOnSerializingReply

Ruft einen Wert ab, der angibt, ob der Identitätswechsel zum Serialisieren des Antwortvorgangs verwendet wird.

InputSessionShutdownHandlers

Ruft eine Auflistung von IInputSessionShutdown-Objekten ab, die verwendet werden können, um einen benutzerdefinierten Handler hinzuzufügen, der die Schließung von Eingabesitzungen steuert.

InstanceContextInitializers

Ruft eine Auflistung von IInstanceContextInitializer-Objekten ab, die verwendet werden können, um ein InstanceContext-Objekt nach der Erstellung zu überprüfen oder zu ändern.

InstanceContextProvider

Ruft den IInstanceContextProvider ab (bzw. legt ihn fest), der von DispatchRuntime verwendet wird.

InstanceProvider

Ruft ein IInstanceProvider-Objekt ab (bzw. legt es fest), das verwendet werden kann, um Dienstobjekte zu erstellen und zu löschen.

MessageAuthenticationAuditLevel

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob Ereignisse für erfolgreiche Nachrichtenauthentifizierung in das Ereignisprotokoll geschrieben werden, das von SecurityAuditLogLocation angegeben wird.

MessageInspectors

Ruft eine Auflistung von IDispatchMessageInspector-Objekten ab, die verwendet werden können, um einen benutzerdefinierten Nachrichteninspektor für alle ein- und ausgehenden Nachrichten über den Endpunkt anzuhängen.

Operations

Ruft eine Auflistung von DispatchOperation-Objekten ab, die verwendet werden können, um das Ausführungsverhalten für einen bestimmten Vorgang zu steuern.

OperationSelector

Ruft das IDispatchOperationSelector-Objekt ab (bzw. legt es fest), das die Auswahl eines DispatchOperation-Ziels für eine bestimmte Nachricht steuert.

PreserveMessage

Ruft ab oder legt fest, ob die Nachricht beibehalten wird.

PrincipalPermissionMode

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, wie die CurrentPrincipal-Eigenschaft eingestellt wird.

ReleaseServiceInstanceOnTransactionComplete

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob das Dienstobjekt nach erfolgreichem Abschluss der Transaktion wiederverwendet werden soll.

RoleProvider

Ruft den benutzerdefinierten RoleProvider ab (bzw. legt ihn fest), der von DispatchRuntime verwendet wird.

SecurityAuditLogLocation

Ruft den Speicherort für das Überwachungsprotokoll ab oder legt diesen fest.

ServiceAuthenticationManager

Ruft das Objekt ab, das einen Authentifizierungsprozess für Dienstvorgänge verwaltet, oder legt es fest.

ServiceAuthorizationAuditLevel

Ruft einen Wert ab oder legt einen Wert fest, der steuert, welche Dienstautorisierungsereignisse überwacht werden.

ServiceAuthorizationManager

Ruft den ServiceAuthorizationManager ab, der Autorisierungsüberprüfung für DispatchRuntime bietet.

SingletonInstanceContext

Ruft den Singleton-IInstanceContextProvider ab (bzw. legt ihn fest), der von DispatchRuntime verwendet wird.

SuppressAuditFailure

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob während des Protokollierungsprozesses auftretende nicht schwerwiegende Ausnahmen unterdrückt werden sollen.

SynchronizationContext

Ruft den Synchronisierungskontext ab (bzw. legt ihn fest), der verwendet wird, um die Dienstvorgänge aufzurufen.

TransactionAutoCompleteOnSessionClose

Ruft einen Wert ab bzw. legt einen Wert fest, der angibt, ob die aktuelle Transaktion beim Schließen der Sitzung automatisch abgeschlossen wird.

Type

Ruft den Typ des Vertrags ab bzw. legt diesen fest.

UnhandledDispatchOperation

Ruft den Vorgang ab bzw. legt den Vorgang fest, an den nicht erkannte Nachrichten geleitet werden.

ValidateMustUnderstand

Ruft den Wert von ValidateMustUnderstand ab bzw. legt ihn fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für