简介
本文档介绍错误“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服务。
同样,这必须在每个节点上完成。
注意:如果在环境中执行升级,则配置文件将被标准配置文件覆盖,您将需要替换此配置,否则将返回错误。