DispatchRuntime Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Die Transformation eingehender Nachrichten in Objekte und die Freigabe dieser Objekte als Methodenaufrufe in einem Dienstobjekt.
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:
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.
Nachrichtenkomponenten werden für jede verarbeitete Nachricht angepasst. Dazu gehören die Eigenschaften MessageInspectors, OperationSelector, Operations und ErrorHandlers.
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.
Sicherheitsrelevante Komponenten können die folgenden Eigenschaften verwenden:
SecurityAuditLogLocation gibt an, wohin Überwachungsereignisse geschrieben werden.
ImpersonateCallerForAllOperations steuert, ob der Dienst versucht, mithilfe der Anmeldeinformationen der eingehenden Nachricht einen Identitätswechsel durchzuführen.
MessageAuthenticationAuditLevel steuert, ob Ereignisse für erfolgreiche Nachrichtenauthentifizierung in das Ereignisprotokoll geschrieben werden, das von SecurityAuditLogLocation angegeben wird.
PrincipalPermissionMode steuert, wie die CurrentPrincipal-Eigenschaft festgelegt wird.
ServiceAuthorizationAuditLevel gibt an, wie die Überwachung von Autorisierungsereignissen durchgeführt wird.
SuppressAuditFailure gibt an, ob während des Protokollierungsprozesses auftretende nicht schwerwiegende Ausnahmen unterdrückt werden sollen.
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) |