소개
이 문서에서는 오류 "417: Expectation Failed(예상 실패)" - 일반적으로 어떤 프록시 형식보다 뒤에 서버에 웹 전화를 걸 때 발생합니다.
배경 정보
이는 일반적으로 POST 또는 PUT 메서드 호출에서 발생합니다. CPO(Cisco Process Orchestrator)에 대한 반환 메시지는 다음과 같습니다.
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>
문제
이로 인해 웹 호출이 실패하고 사용자가 기대하는 웹 서버로부터 적절한 응답을 받지 못합니다. 이는 CPO 버전 3.5.0 이상용입니다.
참고: 3.5.1에서는 각 대상에 플래그를 추가하여 이 컨피그레이션이 3.5.1 이상에서는 아무 작업도 수행하지 않도록 설정(선택) 또는 해제(선택 취소)로 쉽게 구성할 수 있습니다.
솔루션
각 노드에서 Tidal.Automation.Server.Exe.Config 파일로 이동하고 100-continue 헤더에 대한 우회를 구성합니다. 기본적으로 버전 1.1 이상인 웹 요청에서 .net은 기본적으로 100-continue 헤더를 PUTs 및 POSTs에 추가합니다. 이 문제가 발생하는 경우 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 서비스를 다시 시작합니다.
다시 한 번 말하지만 각 노드에서 이 작업을 수행해야 합니다.
참고: 환경에서 업그레이드를 수행하면 컨피그레이션 파일이 표준 컨피그레이션 파일로 덮어쓰기되며 이 컨피그레이션을 교체해야 합니다. 그렇지 않으면 오류가 반환됩니다.