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. |