Introduzione
In questo documento viene descritto l'errore "417: Aspettativa non riuscita" che si verifica, generalmente dietro una forma di proxy, quando si effettua una chiamata Web a un server.
Premesse
Ciò si verifica in genere in una chiamata al metodo POST o PUT. Il messaggio restituito a Cisco Process Orchestrator (CPO) ha il seguente aspetto:
The remote server returned an error: (417) Expectation Failed.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>417 Expectation Failed</title>
</head><body>
<h1>Expectation Failed</h1>
<p>The expectation given in the Expect request-header
field could not be met by this server.
The client sent<pre>
Expect: 100-continue
</pre>
</p><p>Only the 100-continue expectation is supported.</p>
</body></html>
Problema
In questo modo la chiamata Web non riesce e l'utente non riceve una risposta corretta dal server Web previsto. Questo è per CPO versione 3.5.0 o precedente.
Nota: Nella versione 3.5.1, è stato aggiunto un flag su ciascuna destinazione in modo che fosse facile configurarla per essere attivata (selezionata) o disattivata (deselezionata) in modo che questa configurazione non esegua alcuna operazione nella versione 3.5.1 o successive.
Soluzione
Passare al file Tidal.Automation.Server.Exe.Config su ogni nodo e configurare un bypass per l'intestazione 100-continue. Per impostazione predefinita, in una richiesta Web versione 1.1 o successiva, .net aggiunge un'intestazione 100-continue a PUT e POST per impostazione predefinita. Se si verifica questo problema, si consiglia di disattivare il comportamento predefinito solo per CPO. È possibile eseguire questa operazione tramite la configurazione nel file .config come mostrato di seguito:
Per nodo:
1. Arrestare il servizio CPO.
2. Eseguire il backup del file Tidal.Automation.Server.Exe.Config che si trova nella directory di installazione, in genere come C:\Program Files\Cisco\Process Orchestrator
3. Modificare il file .config subito dopo l'area system.diagnostics e aggiungere quanto segue:
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
4. Salvare il file .config e riavviare il servizio CPO.
Anche in questo caso, è necessario eseguire questa operazione su ogni nodo.
Nota: Se viene eseguito un aggiornamento dell'ambiente, il file di configurazione verrà sovrascritto dal file di configurazione standard e sarà necessario sostituire questa configurazione. In caso contrario, verrà restituito l'errore.