Funzione WsWriteMessageStart (webservices.h)

Scrivere tutte le intestazioni del messaggio nel canale e prepararsi a scrivere gli elementi del corpo.

Sintassi

HRESULT WsWriteMessageStart(
  [in]           WS_CHANNEL             *channel,
  [in]           WS_MESSAGE             *message,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Parametri

[in] channel

Canale da usare per scrivere il messaggio.

[in] message

Messaggio da inserire.

[in, optional] asyncContext

Informazioni su come richiamare la funzione in modo asincrono o NULL se si richiama in modo sincrono.

[in, optional] error

Specifica la posizione in cui devono essere archiviate informazioni aggiuntive sugli errori se la funzione ha esito negativo.

Valore restituito

Questa funzione può restituire uno di questi valori.

Codice restituito Descrizione
WS_S_ASYNC
L'operazione asincrona è ancora in sospeso.
WS_E_OPERATION_ABORTED
L'operazione è stata interrotta.
WS_E_INVALID_OPERATION
L'operazione non è consentita a causa dello stato corrente dell'oggetto.
WS_E_ENDPOINT_NOT_FOUND
L'endpoint remoto non esiste o non può trovarsi.
WS_E_ENDPOINT_ACCESS_DENIED
L'accesso è stato negato dall'endpoint remoto.
WS_E_ENDPOINT_DISCONNECTED
La connessione con l'endpoint remoto è stata terminata.
WS_E_ENDPOINT_FAILURE
L'endpoint remoto non è riuscito a elaborare la richiesta.
WS_E_ENDPOINT_NOT_AVAILABLE
L'endpoint remoto non è attualmente in servizio in questa posizione.
WS_E_ENDPOINT_TOO_BUSY
L'endpoint remoto non è in grado di elaborare la richiesta a causa dell'overload.
WS_E_ENDPOINT_UNREACHABLE
L'endpoint remoto non è raggiungibile.
WS_E_INVALID_ENDPOINT_URL
L'URL dell'indirizzo endpoint non è valido.
WS_E_INVALID_FORMAT
I dati di input non erano nel formato previsto o non hanno il valore previsto.
WS_E_OPERATION_TIMED_OUT
L'operazione non è stata completata entro il tempo assegnato.
WS_E_PROXY_ACCESS_DENIED
L'accesso è stato negato dal server proxy HTTP.
WS_E_PROXY_FAILURE
Il server proxy HTTP non è riuscito a elaborare la richiesta.
WS_E_QUOTA_EXCEEDED
È stata superata una quota.
WS_E_SECURITY_VERIFICATION_FAILURE
La verifica della sicurezza non ha avuto esito positivo per i dati ricevuti.
WS_E_SECURITY_SYSTEM_FAILURE
Operazione di sicurezza non riuscita nel framework di Servizi Web Windows.
WS_E_SECURITY_TOKEN_EXPIRED
Un token di sicurezza è stato rifiutato dal server perché è scaduto.
WS_E_PROXY_REQUIRES_BASIC_AUTH
Il server proxy HTTP richiede lo schema di autenticazione HTTP "basic".
WS_E_PROXY_REQUIRES_DIGEST_AUTH
Il server proxy HTTP richiede lo schema di autenticazione HTTP 'digest'.
WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH
Il server proxy HTTP richiede lo schema di autenticazione HTTP 'negotiate'.
WS_E_PROXY_REQUIRES_NTLM_AUTH
Il server proxy HTTP richiede lo schema di autenticazione HTTP 'NTLM'.
WS_E_SERVER_REQUIRES_BASIC_AUTH
L'endpoint remoto richiede lo schema di autenticazione HTTP "basic".
WS_E_SERVER_REQUIRES_DIGEST_AUTH
L'endpoint remoto richiede lo schema di autenticazione HTTP 'digest'.
WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH
L'endpoint remoto richiede lo schema di autenticazione HTTP 'negotiate'.
WS_E_SERVER_REQUIRES_NTLM_AUTH
L'endpoint remoto richiede lo schema di autenticazione HTTP 'NTLM'.
CERT_E_EXPIRED
Un certificato obbligatorio non rientra nel periodo di validità durante la verifica rispetto all'orologio di sistema corrente o al timestamp nel file firmato.
CERT_E_CN_NO_MATCH
Il nome CN dei certificati non corrisponde al valore passato.
CERT_E_UNTRUSTEDROOT
Una catena di certificati elaborata, ma terminata in un certificato radice che non è attendibile dal provider di attendibilità.
CERT_E_WRONG_USAGE
Il certificato non è valido per l'utilizzo richiesto.
CRYPT_E_REVOCATION_OFFLINE
La funzione di revoca non è in grado di completare il controllo di revoca perché il server di revoca è offline.
E_OUTOFMEMORY
Memoria insufficiente.
E_INVALIDARG
Uno o più argomenti non sono validi.
Altri errori
Questa funzione può restituire altri errori non elencati sopra.

Commenti

L'inizio del messaggio, incluso il set corrente di intestazioni presenti nel messaggio, viene scritto nel canale.

Questa funzione è simile a WsWriteEnvelopeStart , ma viene usata con i canali.

Il messaggio deve essere in WS_MESSAGE_STATE_INITIALIZED stato. Al termine dell'operazione, il messaggio verrà passato allo stato WS_MESSAGE_STATE_WRITING .

Per serializzare un elemento del corpo del messaggio, usare WsWriteBody. Per scrivere direttamente nel writer XML del messaggio, ottenere prima di tutto il lettore usando la proprietà WS_MESSAGE_PROPERTY_BODY_WRITER .

Se l'output del canale viene trasmesso (WS_STREAMED_OUTPUT_TRANSFER_MODE), WsFlushBody deve essere chiamato per trasmettere effettivamente ogni parte del corpo.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione webservices.h
Libreria WebServices.lib
DLL WebServices.dll