简介
本文档介绍错误“417:Expectation Failed”,通常在对服务器进行Web呼叫时,在某种形式的代理后发生。
背景信息
这通常发生在POST或PUT方法调用上。返回给Cisco Process Orchestrator(CPO)的消息如下所示:
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>
问题
这会导致Web呼叫失败,用户无法从他们期望的Web服务器获得正确的响应。这适用于CPO版本3.5.0或更低版本。
注意:在3.5.1中,在每个目标上都添加了一个标志,因此很容易将其配置为打开(选中)或关闭(取消选中),因此此配置在3.5.1或更高版本中不会执行任何操作。
解决方案
导航至每个节点上的Tidal.Automation.Server.Exe.Config文件,并为100-continue报头配置旁路。默认情况下,在版本1.1或更高版本的Web请求上,.net会默认向PUT和POST添加一个100-continue报头。如果您看到此问题,建议仅关闭CPO的默认行为。您可以通过.config文件中的配置来执行此操作,如图所示:
每个节点:
1.关闭CPO服务。
2.备份安装目录中的Tidal.Automation.Server.Exe.Config文件,通常类似于C:\Program Files\Cisco\Process Orchestrator。
3.在system.diagnostics区域后立即编辑.config文件,并添加以下内容:
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
4.保存.config文件并重新启动CPO服务。
同样,必须在每个节点上执行此操作。
注意:如果在环境上执行升级,则配置文件将被标准配置文件覆盖,您需要替换此配置,否则将返回错误。