Freigeben über


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.