Introducción
Este documento describe el error "417: Expectation Failed" que ocurre, normalmente detrás de algún tipo de proxy, cuando realiza una llamada web a un servidor.
Antecedentes
Esto ocurre normalmente en una llamada al método POST o PUT. El mensaje de devolución a Cisco Process Orchestrator (CPO) se parece a lo siguiente:
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
Esto hace que la llamada web falle y que el usuario no obtenga una respuesta adecuada del servidor web que espera. Esto es para CPO versión 3.5.0 o posterior.
Nota: En 3.5.1, se agregó un indicador en cada destino para que fuera fácil configurar esto para que estuviera activado (activado) o desactivado (sin marcar), de modo que esta configuración no haría nada en 3.5.1 o posterior.
Solución
Navegue hasta el archivo Tidal.Automation.Server.Exe.Config en cada nodo y configure un desvío para el encabezado 100-continue. De forma predeterminada, en una solicitud web que sea la versión 1.1 o posterior, .net agrega un encabezado de 100-continue a los PUT y POST de forma predeterminada. Si ve este problema, se recomienda desactivar ese comportamiento predeterminado sólo para CPO. Puede hacer esto a través de la configuración en el archivo .config como se muestra:
Por nodo:
1. Cierre el servicio CPO.
2. Realice una copia de seguridad del archivo Tidal.Automation.Server.Exe.Config que se encuentra en el directorio de instalación, normalmente como C:\Program Files\Cisco\Process Orchestrator
3. Edite el archivo .config justo después del área system.diagnostics y agregue esto:
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
4. Guarde el archivo .config y reinicie el servicio CPO.
De nuevo, esto se debe hacer en cada nodo.
Nota: Si se realiza una actualización en el entorno, el archivo de configuración se sobrescribirá con el archivo de configuración estándar y tendrá que reemplazar esta configuración, de lo contrario el error volverá.