Kanal (Windows-Webdienste)
Kanäle kapseln einen Kommunikationskontext zwischen zwei oder mehr Parteien und werden zum Senden und Empfangen von Nachrichten verwendet.
Verwenden Sie auf dem Client WsCreateChannel-, um einen Kanal zu erstellen. Verwenden Sie auf dem Server WsCreateChannelForListener-, um einen Kanal zu erstellen, der vom Client mithilfe einer Listener-akzeptiert werden kann.
Wenn Sie einen Kanal erstellen, geben Sie die folgenden Informationen an, die sowohl das lokale Verhalten des Kanals als auch das zu verwendende Drahtprotokoll bestimmen.
- Ein WS_CHANNEL_TYPE, der das Nachrichtenaustauschmuster des Kanals identifiziert.
- Eine WS_CHANNEL_BINDING, die das zu verwendende Übertragungsprotokoll identifiziert.
- Ein WS_SECURITY_DESCRIPTION, der die für den Kanal verwendete Sicherheit angibt. Wenn Sie Kanäle für die Verwendung auf einem Server erstellen, wird dies einmal für alle Kanäle angegeben, die für einen bestimmten Listener akzeptiert werden.
- Ein Satz WS_CHANNEL_PROPERTYs, der zusätzliche optionale Einstellungen angibt (eine Liste dieser Einstellungen finden Sie in den WS_CHANNEL_PROPERTY_ID Enumerationen).
Bevor Sie den Kanal verwenden, müssen Sie ihn öffnen, indem Sie die WsOpenChannel--Funktion aufrufen und den Kanal und Endpunktadressesowie andere optionale Informationen angeben.
Informationen zu den Statusübergängen für einen Kanal finden Sie im Thema Kanalstatus Thema.
Weitere Informationen zu Kanälen finden Sie im Channel Layer Overview Thema.
Die folgenden API-Elemente werden mit Kanälen verwendet.
Rückruf | Beschreibung |
---|---|
WS_ABANDON_MESSAGE_CALLBACK | Behandelt den WsAbandonMessage Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_ABORT_CHANNEL_CALLBACK | Behandelt den WsAbortChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_CLOSE_CHANNEL_CALLBACK | Behandelt den WsCloseChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_CREATE_CHANNEL_CALLBACK | Behandelt den WsCloseChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_CREATE_DECODER_CALLBACK | Behandelt das Erstellen einer Decoderinstanz. |
WS_CREATE_ENCODER_CALLBACK | Behandelt das Erstellen einer Encoderinstanz. |
WS_DECODER_DECODE_CALLBACK | Decodiert eine Nachricht. |
WS_DECODER_END_CALLBACK | Decodiert das Ende einer Nachricht. |
WS_DECODER_GET_CONTENT_TYPE_CALLBACK | Ruft den Inhaltstyp der Nachricht ab. |
WS_DECODER_START_CALLBACK | Beginnt mit der Decodierung einer Nachricht. |
WS_ENCODER_ENCODE_CALLBACK | Codiert eine Nachricht. |
WS_ENCODER_END_CALLBACK | Codiert das Ende einer Nachricht. |
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK | Ruft den Inhaltstyp der Nachricht ab. |
WS_ENCODER_START_CALLBACK | Startet die Codierung einer Nachricht. |
WS_FREE_CHANNEL_CALLBACK | Behandelt den WsFreeChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_FREE_DECODER_CALLBACK | Behandelt das Freigeben einer Decoderinstanz. |
WS_FREE_ENCODER_CALLBACK | Behandelt das Freigeben einer Encoderinstanz. |
WS_GET_CHANNEL_PROPERTY_CALLBACK | Behandelt den WsGetChannelProperty Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_HTTP_REDIRECT_CALLBACK | Wird aufgerufen, wenn eine Nachricht automatisch an einen anderen Dienst umgeleitet werden soll, der die Funktion zur automatischen HTTP-Umleitung verwendet, wie in RFC2616 beschrieben. |
WS_OPEN_CHANNEL_CALLBACK | Behandelt den WsOpenChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_READ_MESSAGE_END_CALLBACK | Behandelt den WsReadMessageEnd Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_READ_MESSAGE_START_CALLBACK | Behandelt den WsReadMessageEnd Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_RESET_CHANNEL_CALLBACK | Behandelt den WsResetChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_SET_CHANNEL_PROPERTY_CALLBACK | Behandelt den WsSetChannelProperty- Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK | Behandelt den WsShutdownSessionChannel Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_WRITE_MESSAGE_END_CALLBACK | Behandelt den WsWriteMessageEnd Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
WS_WRITE_MESSAGE_START_CALLBACK | Behandelt den WsWriteMessageStart Anruf für einen Kanal mit benutzerdefinierter Kanalbindung. |
Aufzählung | Beschreibung |
---|---|
WS_CHANNEL_BINDING | Gibt den Protokollstapel an, der für den Kanal verwendet werden soll. |
WS_CHANNEL_PROPERTY_ID | Identifiziert jede Kanaleigenschaft anhand einer ID. |
WS_CHANNEL_STATE | Der Status des Kanals. |
WS_CHANNEL_TYPE | Gibt die grundlegenden Merkmale des Kanals an, z. B. ob er sitzungsbehaftet ist und welche Kommunikationsrichtungen unterstützt werden. |
WS_ENCODING | Die verschiedenen Codierungen (Nachrichtenformate). |
WS_RECEIVE_OPTION | Gibt an, ob beim Empfangen von einem Kanal eine Nachricht erforderlich ist. |
WS_TRANSFER_MODE | Gibt an, ob gesendete oder empfangene Nachrichten gestreamt oder gepuffert werden. |
Funktion | Beschreibung |
---|---|
WsAbandonMessage | Überspringt den Rest einer Nachricht für einen Kanal. |
WsAbortChannel | Bricht alle ausstehenden E/A auf einem angegebenen Kanal ab und legt den Kanalstatus auf WS_CHANNEL_STATE_FAULTEDfest. |
WsCloseChannel | Schließt einen Kanal, wenn er nicht mehr benötigt wird. |
WsCreateChannel- | Erstellt einen Kanal. |
WsCreateChannelForListener- | Erstellt einen Kanal für einen Listener. |
WsFreeChannel- | Gibt die Speicherressourcen frei, die einem Kanal zugeordnet sind. |
WsGetChannelProperty- | Ruft eine Eigenschaft des Kanals ab, auf den vom Kanalparameter verwiesen wird. |
WsOpenChannel | Öffnet einen Kanal zu einem Endpunkt. |
WsReadMessageEnd- | Liest die schließende Elemente einer Nachricht aus einem Kanal. |
WsReadMessageStart- | Liest die Kopfzeilen der nächsten Nachricht aus dem Kanal und bereitet sie vor, die Textkörperelemente zu lesen. |
WsReceiveMessage- | Empfängt eine Nachricht und deserialisiert den Textkörper der Nachricht als Wert. |
WsRequestReply | Sendet eine Anforderungsnachricht und empfängt eine korrelierte Antwortnachricht. |
WsResetChannel | Setzen Sie einen Kanal zurück, damit er wiederverwendet werden kann. |
WsSendMessage- | Sendet eine Nachricht in einem Kanal mithilfe der Serialisierung, um das Textkörperelement zu schreiben. |
WsSendReplyMessage | Sendet eine Nachricht, die eine Antwort auf eine empfangene Nachricht ist. |
WsSetChannelProperty- | Legt eine Eigenschaft eines Kanals fest. |
WsSetMessageProperty | Legt eine Eigenschaft einer Nachricht fest. |
WsWriteMessageEnd | Schreibt die schließenden Elemente einer Nachricht in den Kanal. |
WsWriteMessageStart- | Schreiben Sie die Kopfzeilen einer Nachricht in den Kanal, und bereiten Sie sich darauf vor, die Textkörperelemente zu schreiben. |
Griff | Beschreibung |
---|---|
WS_CHANNEL | Ein undurchsichtiger Typ, der zum Verweisen auf einen Kanal verwendet wird. |
Struktur | Beschreibung |
---|---|
WS_CHANNEL_DECODER | Eine Reihe von Rückrufen, die den Inhaltstyp transformieren und codierte Bytes einer empfangenen Nachricht codieren. |
WS_CHANNEL_ENCODER | Eine Reihe von Rückrufen, die den Inhaltstyp transformieren und codierte Bytes einer gesendeten Nachricht transformieren können. |
WS_CHANNEL_PROPERTIES | Eine Reihe von WS_CHANNEL_PROPERTY Strukturen. |
WS_CHANNEL_PROPERTY | Eine kanalspezifische Einstellung. |
WS_CUSTOM_CHANNEL_CALLBACKS | Eine Reihe von Rückrufen, die die Implementierung eines benutzerdefinierten Kanals bilden. |
WS_CUSTOM_HTTP_PROXY | wird verwendet, um den benutzerdefinierten Proxy für den Kanal mithilfe des WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY Werts der WS_CHANNEL_PROPERTY_ID Enumeration anzugeben. |
WS_HTTP_HEADER_MAPPING | Stellt eine einzelne Kopfzeile dar, die als Teil von WS_HTTP_MESSAGE_MAPPINGzugeordnet wird. |
WS_HTTP_MESSAGE_MAPPING | Informationen dazu, wie eine HTTP-Anforderung oder -Antwort in einem Nachrichtenobjekt dargestellt werden soll. |
WS_HTTP_REDIRECT_CALLBACK_CONTEXT | Gibt die Rückruffunktion und den Status zum Steuern des verhaltens der automatischen HTTP-Umleitung an. |
WS_MESSAGE_DESCRIPTION | Das Schema für die Eingabe- und Ausgabe-WS_MESSAGE für eine bestimmte Vorgangsbeschreibung. |