Condividi tramite


Canale (Servizi Web Windows)

I canali incapsulano un contesto di comunicazione tra due o più parti e vengono usati per inviare e ricevere messaggi.

Nel client usare WsCreateChannel per creare un canale. Nel server usare WsCreateChannelForListener per creare un canale che può essere accettato dal client usando un listener .

Quando si crea un canale, si specificano le informazioni seguenti, che determinano sia il comportamento locale del canale che il protocollo di collegamento da usare.

  • Oggetto WS_CHANNEL_TYPE, che identifica il modello di scambio di messaggi del canale.
  • Oggetto WS_CHANNEL_BINDING, che identifica il protocollo di trasferimento da usare.
  • Oggetto WS_SECURITY_DESCRIPTION, che specifica la sicurezza usata per il canale. Quando si creano canali da usare in un server, questo viene specificato una volta per tutti i canali che verranno accettati per un determinato listener.
  • Set WS_CHANNEL_PROPERTYs, che specificano impostazioni facoltative aggiuntive (per un elenco di queste impostazioni, vedere le enumerazioni WS_CHANNEL_PROPERTY_ID).

Prima di usare il canale, è necessario aprirlo chiamando la funzione WsOpenChannel e specificando il canale e l'indirizzo dell'endpoint , insieme ad altre informazioni facoltative.

Per informazioni sulle transizioni di stato per un canale, vedere l'argomentoChannel States.For information on the state transitions for a channel, see the Channel States topic.

Per altre informazioni sui canali, vedere l'argomento panoramica del livello del canale.

Gli elementi API seguenti vengono usati con i canali.

Richiamo Descrizione
WS_ABANDON_MESSAGE_CALLBACK Gestisce la chiamata WsAbandonMessage per un canale con associazione di canale personalizzata.
WS_ABORT_CHANNEL_CALLBACK Gestisce la chiamataWsAbortChannelper un canale con associazione di canale personalizzata.
WS_CLOSE_CHANNEL_CALLBACK Gestisce la chiamataWsCloseChannelper un canale con associazione di canale personalizzata.
WS_CREATE_CHANNEL_CALLBACK Gestisce la chiamataWsCloseChannelper un canale con associazione di canale personalizzata.
WS_CREATE_DECODER_CALLBACK Gestisce la creazione di un'istanza del decodificatore.
WS_CREATE_ENCODER_CALLBACK Gestisce la creazione di un'istanza del codificatore.
WS_DECODER_DECODE_CALLBACK Decodifica un messaggio.
WS_DECODER_END_CALLBACK Decodifica la fine di un messaggio.
WS_DECODER_GET_CONTENT_TYPE_CALLBACK Ottiene il tipo di contenuto del messaggio.
WS_DECODER_START_CALLBACK Avvia la decodifica di un messaggio.
WS_ENCODER_ENCODE_CALLBACK Codifica un messaggio.
WS_ENCODER_END_CALLBACK Codifica la fine di un messaggio.
WS_ENCODER_GET_CONTENT_TYPE_CALLBACK Ottiene il tipo di contenuto del messaggio.
WS_ENCODER_START_CALLBACK Avvia la codifica di un messaggio.
WS_FREE_CHANNEL_CALLBACK Gestisce la chiamataWsFreeChannelper un canale con associazione di canale personalizzata.
WS_FREE_DECODER_CALLBACK Gestisce la liberazione di un'istanza del decodificatore.
WS_FREE_ENCODER_CALLBACK Gestisce la liberazione di un'istanza del codificatore.
WS_GET_CHANNEL_PROPERTY_CALLBACK Gestisce il WsGetChannelProperty chiamata a un canale con associazione di canale personalizzata.
WS_HTTP_REDIRECT_CALLBACK Richiamato quando un messaggio sta per essere reindirizzato automaticamente a un altro servizio usando la funzionalità di reindirizzamento automatico HTTP, come descritto in RFC2616.
WS_OPEN_CHANNEL_CALLBACK Gestisce la chiamataWsOpenChannelper un canale con associazione di canale personalizzata.
WS_READ_MESSAGE_END_CALLBACK Gestisce la chiamata WsReadMessageEnd per un canale con associazione di canale personalizzata.
WS_READ_MESSAGE_START_CALLBACK Gestisce la chiamata WsReadMessageEnd per un canale con associazione di canale personalizzata.
WS_RESET_CHANNEL_CALLBACK Gestisce la chiamataWsResetChannelper un canale con associazione di canale personalizzata.
WS_SET_CHANNEL_PROPERTY_CALLBACK Gestisce la WsSetChannelProperty chiamata a un canale con associazione di canale personalizzata.
WS_SHUTDOWN_SESSION_CHANNEL_CALLBACK Gestisce la WsShutdownSessionChannel chiamata a un canale con associazione di canale personalizzata.
WS_WRITE_MESSAGE_END_CALLBACK Gestisce la chiamataWsWriteMessageEndper un canale con associazione di canale personalizzata.
WS_WRITE_MESSAGE_START_CALLBACK Gestisce il WsWriteMessageStart chiamata per un canale con associazione di canale personalizzata.

 

Enumerazione Descrizione
WS_CHANNEL_BINDING Indica lo stack di protocolli da usare per il canale.
WS_CHANNEL_PROPERTY_ID Identifica ogni proprietà del canale in base a un ID.
WS_CHANNEL_STATE Stato del canale.
WS_CHANNEL_TYPE Indica le caratteristiche di base del canale, ad esempio se è con sessione e quali indicazioni di comunicazione sono supportate.
WS_ENCODING Le diverse codifiche (formati di messaggio).
WS_RECEIVE_OPTION Specifica se è necessario un messaggio quando si riceve da un canale.
WS_TRANSFER_MODE Specifica se i messaggi inviati o ricevuti vengono trasmessi o memorizzati nel buffer.

 

Funzione Descrizione
WsAbandonMessage Ignora il resto di un messaggio per un canale.
WsAbortChannel Interrompe tutte le operazioni di I/O in sospeso in un canale specificato e imposta lo stato del canale su WS_CHANNEL_STATE_FAULTED.
WsCloseChannel Chiude un canale quando non è più necessario.
WsCreateChannel Crea un canale.
WsCreateChannelForListener Crea un canale per un listener.
WsFreeChannel Rilascia le risorse di memoria associate a un canale.
WsGetChannelProperty Recupera una proprietà del canale a cui fa riferimento il parametro del canale.
WsOpenChannel Apre un canale a un endpoint.
WsReadMessageEnd Legge gli elementi di chiusura di un messaggio da un canale.
WsReadMessageStart Legge le intestazioni del messaggio successivo dal canale e prepara a leggere gli elementi del corpo.
WsReceiveMessage Riceve un messaggio e deserializza il corpo del messaggio come valore.
WsRequestReply Invia un messaggio di richiesta e riceve un messaggio di risposta correlato.
WsResetChannel Reimpostare un canale in modo che possa essere riutilizzato.
WsSendMessage Invia un messaggio su un canale utilizzando la serializzazione per scrivere l'elemento del corpo.
WsSendReplyMessage Invia un messaggio che rappresenta una risposta a un messaggio ricevuto.
WsSetChannelProperty Imposta una proprietà di un canale.
WsSetMessageProperty Imposta una proprietà di un messaggio.
WsWriteMessageEnd Scrive gli elementi di chiusura di un messaggio nel canale.
WsWriteMessageStart Scrivere le intestazioni di un messaggio nel canale e prepararsi a scrivere gli elementi del corpo.

 

Maneggiare Descrizione
WS_CHANNEL Tipo opaco utilizzato per fare riferimento a un canale.

 

Struttura Descrizione
WS_CHANNEL_DECODER Set di callback che trasformano il tipo di contenuto e i byte codificati di un messaggio ricevuto.
WS_CHANNEL_ENCODER Set di callback che possono trasformare il tipo di contenuto e i byte codificati di un messaggio inviato.
WS_CHANNEL_PROPERTIES Set di strutture WS_CHANNEL_PROPERTY.
WS_CHANNEL_PROPERTY Impostazione specifica del canale.
WS_CUSTOM_CHANNEL_CALLBACKS Set di callback che formano l'implementazione di un canale personalizzato.
WS_CUSTOM_HTTP_PROXY utilizzato per specificare il proxy personalizzato per il canale, usando il valore WS_CHANNEL_PROPERTY_CUSTOM_HTTP_PROXY dell'enumerazione WS_CHANNEL_PROPERTY_ID.
WS_HTTP_HEADER_MAPPING Rappresenta una singola intestazione mappata come parte di WS_HTTP_MESSAGE_MAPPING.
WS_HTTP_MESSAGE_MAPPING Informazioni su come rappresentare una richiesta o una risposta HTTP in un oggetto messaggio.
WS_HTTP_REDIRECT_CALLBACK_CONTEXT Specifica la funzione di callback e lo stato per controllare il comportamento di reindirizzamento automatico HTTP.
WS_MESSAGE_DESCRIPTION Schema per l'input e l'output WS_MESSAGE per una determinata descrizione dell'operazione.