概要
このドキュメントでは、サーバにWebコールを行うときに発生するエラー「417: Expectation Failed」について説明します。これは通常、何らかの形式のプロキシの背後で発生します。
背景説明
これは通常、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はデフォルトで100-continueヘッダーをPUTとPOSTに追加します。この問題が発生した場合は、CPOに対してのみデフォルトの動作をオフにすることをお勧めします。 これは、次に示すように.configファイルの設定によって実行できます。
ノードあたり:
1. CPOサービスをシャットダウンします。
2. インストールディレクトリ(通常はC:\Program Files\Cisco\Process Orchestratorなど)にあるTidal.Automation.Server.Exe.Configファイルをバックアップします
3. system.diagnostics領域の直後に.configファイルを編集し、次を追加します。
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
4. .configファイルを保存し、CPOサービスを再起動します。
この操作も各ノードで行う必要があります。
注:環境でアップグレードを実行すると、コンフィギュレーションファイルは標準のコンフィギュレーションファイルで上書きされるため、この設定を置き換える必要があります。置き換えないと、エラーが再発します。