Condividi tramite


Errors

In questa sezione viene descritto l'errore che può essere generato dalle funzioni di Servizi Web Windows in seguito a un errore di esecuzione del comando.

Parametri out

Come regola generale, il valore dei parametri out non viene modificato se una funzione non riesce.

Esistono alcune istanze in cui i parametri out vengono modificati se la funzione ha esito negativo. Questi casi vengono evidenziati in modo esplicito nella documentazione per ogni parametro. Se la documentazione non menziona nulla sulla modifica dei parametri in caso di errore, è possibile presupporre che la funzione non le modificherà.

Codici di errore

Tutti i codici restituiti di errore sono HRESULT. Questa API definisce un set di HRESULT nell'intervallo FACILITY_WEBedizione Standard RVICES, ma restituisce anche errori definiti altrove nell'API di Windows.

Per informazioni sui codici di errore restituiti, vedere la documentazione relativa all'API specifica. L'elenco non deve essere esaustivo per ogni API, ma piuttosto un elenco di codici di errore per i quali esistono scenari comuni per la gestione esplicita. Un chiamante deve sempre presupporre che altri codici di errore siano possibili da qualsiasi API.

Questa API definisce un numero relativamente ridotto di codici di errore, che corrispondono agli scenari in cui un programma vuole intervenire in base all'errore. I codici di errore da soli potrebbero non essere sufficienti per determinare cosa è andato storto o per fornire una buona descrizione del problema all'utente. La migliore comprensione del problema deriva dall'uso di errori avanzati, come descritto di seguito.

Errori avanzati

In aggiunta alla restituzione di un codice di errore, un chiamante può richiedere facoltativamente informazioni dettagliate sull'errore per qualsiasi chiamata API passando un oggetto WS_ERROR non NULL. Per creare un oggetto errore, utilizzare WsCreateError. Se si verifica un errore, l'API che ha causato l'errore riempirà l'oggetto errore con un contesto aggiuntivo sulla situazione dell'errore. Se non è presente alcun errore, l'oggetto errore non viene modificato. Il passaggio di un oggetto errore NULL indica che il chiamante non è interessato a informazioni dettagliate sull'errore. I chiamato (inclusi i callback) devono essere preparati per gestire gli oggetti errore NULL .

Si noti che lo stesso oggetto errore può essere usato per più chiamate API, ma può essere usato solo per una chiamata API alla volta (perché è a thread singolo). Ogni volta che si verifica un errore, le informazioni sull'errore vengono aggiunte all'oggetto errore. Durante la rimozione di una catena di chiamate, più funzioni possono aggiungere informazioni all'oggetto errore per fornire contesto aggiuntivo sull'errore. Per cancellare il contenuto dell'oggetto errore prima di riutilizzarlo (dopo che si verifica un errore), usare WsResetError. Se non si verifica alcun errore, non è necessario reimpostare l'oggetto errore prima di riutilizzarlo.

Le informazioni dettagliate sugli errori sono costituite dai seguenti elementi:

Errori ed errori

Per informazioni sulla correlazione di errori e errori, vedere Errori .

Informazioni sugli errori sensibili alla lingua

Quando si crea un oggetto errore, viene specificato il LANGID della lingua desiderata per le informazioni sull'errore. Questa operazione viene utilizzata quando si aggiungono informazioni sull'errore all'oggetto error.

Questo valore di lingua può essere recuperato o impostato usando WS_ERROR_PROPERTY_LANGID.

Codici di errore canonici

Questa API fornisce un set canonico di codici di errore (WS_E_*) che consentono l'uso di tecnologie di comunicazione diverse senza dover dipendere dai codici di errore specifici dell'implementazione sottostante specifica. Per un elenco completo di questi codici di errore, vedere Valori restituiti di Servizi Web Windows.

Ciò consente, ad esempio, a un programma di verificare la presenza del codice di errore WS_E_ENDPOINT_NOT_FOUND se si usa TCP, UDP o HTTP ed eseguire un'azione ( ad esempio il tentativo di usare un endpoint diverso).

Quando viene eseguito il mapping di un codice di errore specifico di implementazione a un errore canonico, il codice di errore originale viene salvato nell'oggetto errore e può comunque essere eseguito per scopi diagnostici. Per altre informazioni, vedere WS_ERROR_PROPERTY_ORIGINAL_ERROR_CODE .

Utilizzo API non valido

I codici di errore seguenti sono riservati per l'utilizzo dell'API non valido e non verranno restituiti in altre circostanze. Se uno di questi errori viene restituito, potrebbe essere un'indicazione di un bug dell'applicazione.

  • WS_E_INVALID_OPERATION
  • E_INVALIDARG

Le enumerazioni seguenti fanno parte della traccia:

I codici di errore seguenti fanno parte della traccia:

  • CERT_E_CN_NO_MATCH
  • CERT_E_EXPIRED
  • CERT_E_UNTRUSTEDROOT
  • CERT_E_WRONG_USAGE
  • CRYPT_E_REVOCATION_OFFLINE
  • E_INVALIDARG
  • E_OUTOFMEMORY
  • WS_E_ADDRESS_IN_Uedizione Standard
  • WS_E_ADDRESS_NOT_AVAILABLE
  • WS_E_ENDPOINT_ACCESS_DENIED
  • WS_E_ENDPOINT_ACTION_NOT_SUPPORTED
  • WS_E_ENDPOINT_DISCONNECTED
  • WS_E_ENDPOINT_FAILURE
  • WS_E_ENDPOINT_FAULT_RECEIVED
  • WS_E_ENDPOINT_NOT_AVAILABLE
  • WS_E_ENDPOINT_NOT_FOUND
  • WS_E_ENDPOINT_TOO_BUSY
  • WS_E_ENDPOINT_UNREACHABLE
  • WS_E_INVALID_ENDPOINT_URL
  • WS_E_INVALID_FORMAT
  • WS_E_INVALID_OPERATION
  • WS_E_NOT_SUPPORTED
  • WS_E_NO_TRANSLATION_AVAILABLE
  • WS_E_NUMERIC_OVERFLOW
  • WS_E_OBJECT_FAULTED
  • WS_E_OPERATION_ABANDONED
  • WS_E_OPERATION_ABORTED
  • WS_E_OPERATION_TIMED_OUT
  • WS_E_OTHER
  • WS_E_PROXY_ACCESS_DENIED
  • WS_E_PROXY_FAILURE
  • WS_E_PROXY_REQUIRES_BASIC_AUTH
  • WS_E_PROXY_REQUIRES_DIGEST_AUTH
  • WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH
  • WS_E_PROXY_REQUIRES_NTLM_AUTH
  • WS_E_QUOTA_EXCedizione Enterprise DED
  • WS_E_edizione StandardCURITY_SYSTEM_FAILURE
  • WS_E_edizione StandardCURITY_TOKEN_EXPIRED
  • WS_E_edizione StandardCURITY_VERIFICATION_FAILURE
  • WS_E_edizione StandardRVER_REQUIRES_BASIC_AUTH
  • WS_E_edizione StandardRVER_REQUIRES_DIGEST_AUTH
  • WS_E_edizione StandardRVER_REQUIRES_NEGOTIATE_AUTH
  • WS_E_edizione StandardRVER_REQUIRES_NTLM_AUTH
  • WS_S_ASYNC
  • WS_S_END

Le funzioni seguenti fanno parte della traccia:

L'handle seguente fa parte della traccia:

La struttura seguente fa parte della traccia:

Sicurezza

Esistono alcune considerazioni sulla sicurezza che l'utente dell'oggetto errore deve tenere presente:

  • L'oggetto errore può contenere dati non attendibili. Di seguito sono riportati alcuni esempi: il WS_FAULT e le stringhe di errore, che possono essere archiviate nell'oggetto errore in base alle informazioni ricevute su un canale non attendibile. L'utente dell'oggetto errore deve prestare attenzione quando si esaminano le informazioni nell'oggetto errore e si prende decisioni in base ai relativi valori.
  • Un utente dell'oggetto errore deve chiamare WsResetError dopo aver esaminato le informazioni sull'errore. In caso contrario, l'accumulo di memoria può causare un accumulo di memoria.
  • Un utente dell'oggetto errore deve prestare molta attenzione quando si usa il valore WS_FULL_FAULT_DISCLOSURE dell'enumerazione WS_FAULT_DISCLOSURE , perché l'errore generato potrebbe contenere informazioni private accumulate come parte del processo di registrazione degli errori.