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 eines Listeners 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 Übertragungsprotokoll bestimmen.

  • Eine WS_CHANNEL_TYPE, die das Nachrichtenaustauschmuster des Kanals identifiziert.
  • Ein WS_CHANNEL_BINDING, der das zu verwendende Übertragungsprotokoll identifiziert.
  • Ein WS_SECURITY_DESCRIPTION, der die für den Kanal verwendete Sicherheit angibt. Beim Erstellen von Kanälen für die Verwendung auf einem Server wird dies einmal für alle Kanäle angegeben, die für einen bestimmten Listener akzeptiert werden.
  • Eine Gruppe WS_CHANNEL_PROPERTYs, die zusätzliche optionale Einstellungen angeben (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 die Endpunktadresse zusammen mit anderen optionalen Informationen angeben.

Informationen zu den Zustandsübergängen für einen Kanal finden Sie im Thema Kanalstatus .

Weitere Informationen zu Kanälen finden Sie im Thema Übersicht über Kanalebenen .

Die folgenden API-Elemente werden mit Kanälen verwendet.

Rückruf Beschreibung
WS_ABANDON_MESSAGE_CALLBACK Behandelt den WsAbandonMessage-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_ABORT_CHANNEL_CALLBACK Behandelt den WsAbortChannel-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_CLOSE_CHANNEL_CALLBACK Behandelt den WsCloseChannel-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_CREATE_CHANNEL_CALLBACK Behandelt den WsCloseChannel-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_CREATE_DECODER_CALLBACK Behandelt das Erstellen eines Decoders instance.
WS_CREATE_ENCODER_CALLBACK Behandelt das Erstellen eines Encoders instance.
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 Startet die 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 das Codieren einer Nachricht.
WS_FREE_CHANNEL_CALLBACK Behandelt den WsFreeChannel-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_FREE_DECODER_CALLBACK Behandelt das Freigeben eines Decoders instance.
WS_FREE_ENCODER_CALLBACK Behandelt das Freigeben eines Encoders instance.
WS_GET_CHANNEL_PROPERTY_CALLBACK Behandelt den WsGetChannelProperty-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_HTTP_REDIRECT_CALLBACK Wird aufgerufen, wenn eine Nachricht automatisch an einen anderen Dienst umgeleitet werden soll, indem die Funktionalität für die automatische HTTP-Umleitung verwendet wird, wie in RFC2616 beschrieben.
WS_OPEN_CHANNEL_CALLBACK Behandelt den WsOpenChannel-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_READ_MESSAGE_END_CALLBACK Behandelt den WsReadMessageEnd-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_READ_MESSAGE_START_CALLBACK Behandelt den WsReadMessageEnd-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_RESET_CHANNEL_CALLBACK Behandelt den WsResetChannel-Aufruf 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-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_WRITE_MESSAGE_END_CALLBACK Behandelt den WsWriteMessageEnd-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.
WS_WRITE_MESSAGE_START_CALLBACK Behandelt den WsWriteMessageStart-Aufruf für einen Kanal mit benutzerdefinierter Kanalbindung.

 

Enumeration 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-Vorgänge in einem angegebenen Kanal ab und legt den Kanalstatus auf WS_CHANNEL_STATE_FAULTED fest.
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 das Lesen der Textelemente vor.
WsReceiveMessage Empfängt eine Nachricht und deserialisiert den Nachrichtentext 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 Body-Element 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 das Schreiben der Textelemente vor.

 

Handle Beschreibung
WS_CHANNEL Ein undurchsichtiger Typ, der verwendet wird, um auf einen Kanal zu verweisen.

 

Struktur Beschreibung
WS_CHANNEL_DECODER Eine Reihe von Rückrufen, die den Inhaltstyp und die codierten Bytes einer empfangenen Nachricht transformieren.
WS_CHANNEL_ENCODER Eine Reihe von Rückrufen, die den Inhaltstyp und die codierten 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 einen einzelnen Header dar, der als Teil von WS_HTTP_MESSAGE_MAPPING zugeordnet 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 angegebene Vorgangsbeschreibung.