Table of Contents
Aktualisiert
Möglicherweise stoßen Sie auf einen Fehlercode, der darauf hinweist, dass eine Fehlerwartezeit fehlgeschlagen ist. Zufälligerweise gibt es die wenigen Schritte, die Sie unternehmen können, um das Problem zu beheben, und wir werden in Kürze darauf zurückkommen.Der Fehlerantwortcode HTTP 417 Expectation Failed zeigt an, dass die in den Expect-h2-Bedingungen der Anforderung angegebenen Erwartungen nicht erfüllt werden konnten.
Der Clientkanal HTTP 417 Expectation Failed gibt an, dass die im Expect-Header der Hauptanforderung angegebene Erwartung oft nicht erfüllt werden konnte.
Die Situation und die gleichen Hindernisse können auch bei einem SOAP-Proxy-Breitdienst auftreten, der mit (nicht Assistent 100 % Standard, diese Anleitung kann auch im WCF-Add-System.Be)-Dienstmodell
erstellt werden, wenn < /p>
Der
expect
Http-Teil, den Sie sehen, der POST
oder PUT< / Codes verschlüsseln). Die Abfrage war erforderlich > für ein Standardkonventionsprotokoll, das eine Abfrage in Teilen zurückgibt, zwei, wie in den Anmerkungen hier dargestellt)
Wie die anderen Antworten normalerweise zeigen, wenn das spezifische Problem, das Kunden auswählen, darin besteht, dass Erwarten
H2-Tags ein gutes Problem verursachen, kann an diesem speziellen Problem gearbeitet werden, indem an einem globalen relativen Problem gearbeitet wird. Deaktivieren dieser beiden chastatischen PUT/POST-Weiterleitungen über System.Net.ServicePointManager.Expect100Continue
.
Der Kunde löst jedoch ein großes ungelöstes zugrunde liegendes Problem. Der Stack kann immer noch HTTP 1.1-spezifische Schritte wie Keep Alive usw. verwenden (obwohl der Rest in vielen Fällen Erklärungen der wichtigsten Fälle abdeckt.)
Der eigentliche Stolperstein ist, wie gesagt, dass der automatisch generierte Code zeigt, dass Ihre ganze Familie die blinden Funktionen 1 von http.1 verwenden kann, vorausgesetzt, dass jeder das versteht. Um dies für einen fabelhaften Webservice-Proxy zu vermeiden, können Sie den Standardwert der Basisüberschreibung HttpWebRequest.ProtocolVersion
von Unterstellung 1.1 ändern, indem Sie eine abgeleitete Proxy-Klasse erstellen, die häufig überschreibt. protected WebRequest overrides GetWebRequest( Uri uri )< /code> wie im Beitrag gezeigt:-
Öffnen Sie dieses eine Formular MyNotAssumingHttp11ProxiesAndServersProxy: MyWS Sichere Website-Anfrage überschreiben GetWebRequest(Uri uri) Anfrage HttpWebRequest = (HttpWebRequest)base.GetWebRequest(uri); request.ProtocolVersion = HttpVersion.Version10; Rücksendeantrag;
(wobei MyWS
der Proxy-Server ist, den Ihnen die meisten Webmaster gegeben haben, um diesen bestimmten Linkloc hinzuzufügen.)
ProxyFriendlyXXXWs-Klasse: BasicHttpBinding_IXX (öffentliches Ziel Uri proxyfriendlyxxxws) URL = Ziel.ToString(); this.IfProxedUrlAddProxyOverriddenWithDefaultCredentials(); // Sie durchlaufen ihre unvollständigen (oder falsch konfigurierten) Proxys in einer endlosen Schleife, um 1 http klar zu verstehen. Ohne 0 kann es 417 sein sichere Überschreibung http WebRequest GetWebRequest( Uri uri ) var Aufruf (HttpWebRequest) build =.GetWebRequest(URI); request.ProtocolVersion = HttpVersion.Version10; Bitte komm zurück; Static Conversation SoapHttpClientProtocolRealWorldProxyTraversalExtensions // ootb, .NET 1-4 übergibt keine Proxy-Anmeldeinformationen. Gestoppt // um zu dokumentieren, wie "nur Ihre als Möglichkeit, die Standard-Proxy-Konfiguration in Ihrer eigenen app.config zu überschreiben" (oder machine.config!) allgemeine statische Lücken IfProxiedUrlAddProxyOverriddenWithDefaultCredentials (dieses SoapHttpClientProtocol wird von Experten spezifiziert) Ziel-Uri bedeutet neuer Uri That (.Url ); ProxyedAddress wird uri WebRequest to.DefaultWebProxy.GetProxy(); target if (! target.Equals(proxyedAddress)) Dass .Proxy impliziert, dass new WebProxy() proxiedAddress Usedefaultcredentials wahr ist;
codiert
Status 417 in den meisten Anfragen weist auf Komplikationen mit dem Pending-Header hin. Wahrscheinlich war der Server nicht in der Lage, auf die Anfrage in dieser Überschrift (RFC7231) zu antworten.
Lösung
Erfassen Sie einen Fiddler-Trace und parsen Sie diesen spezifischen Header. Prüfen Sie genau, ob dieses Problem aufgetreten ist, ob es geändert wurde, um den Job zuvor zu erledigen, ob es sich auf einem anderen Webserver befindet usw.
Aktualisiert
Sind Sie es leid, dass Ihr Computer langsam läuft? Genervt von frustrierenden Fehlermeldungen? ASR Pro ist die Lösung für Sie! Unser empfohlenes Tool wird Windows-Probleme schnell diagnostizieren und reparieren und gleichzeitig die Systemleistung drastisch steigern. Warten Sie also nicht länger, laden Sie ASR Pro noch heute herunter!
In meinem Fall wurde das Problem in der Nähe eines fehlenden abschließenden Schrägstrichs ("/") am Ende des Corsogin-Parameters nur in appsettings.json verursacht. Das Hinzufügen löste das Problem.
Hinweis. Das System.Net.HttpWebRequest selbst fügt "Expect: 100-Continue" zur Anfrage hinzu (Link). Sie können dieses Problem lösen, indem Sie explizit starten:
Wie hänge ich Fehler 417 an?
Ändern Sie Ihre Haupt-SQL-Abfrage, um wertvolle XML-Daten als nvarchar-Datentyp auf der anderen Seite des XML-Datentyps wiederzugeben.Wenn Sie einen bestimmten XML-Datentyp nicht verwenden, aber immer noch den Fehler 417 Fehler beim Warten erhalten, sollten Sie erwägen, eine Filmskriptaufgabe hinzuzufügen, bevor Sie die API aufrufen (fügen Sie den ursprünglichen Schritt dieser Flows hinzu).
System Delete.Net.ServicePointManager.Expect100Continue = false;
Lösung
Das HTTP/1.1-Protokoll setzt den Status auf eine Person (proceed), was es dem Client vermutlich ermöglicht zu prüfen, ob der angegebene Server bereit ist, eine Anfrage anzunehmen, bevor er die Textnachricht sendet. Dieses Verfahren sieht folgendermaßen aus:
- Der Client möchte irgendeine Art von Nachricht an das Anfragegerät senden.
- Der Client sendet immer. Es gibt keine Anfrage mit h2-Tags, die
Expect: 100-continue.
- Server gibt entweder Status
100 und/oder (Fortfahren)
, Status417 (Warten auf Fehler)
zurück.
100 Dies (Fortsetzung)
bedeutet, dass der Server die la-Anfrage häufig akzeptiert und der Client weiterhin unseren eigenen la-Anfragetext senden kann.- < code> 417 (Warten nicht erfolgreich ) bedeutet, dass der entfernte Computer die Anfrage ablehnt.
Ist die 417-Erwartung fehlgeschlagen?
Der Statuscode 417 weist auf eine schwerwiegende Angelegenheit mit dem Header „Expect Return“ in der Erfassung hin. Der Server konnte höchstwahrscheinlich den Inhalt dieses Headers nicht ausfüllen (RFC7231).
Bei Verwendung ausgewählter HTTP-Pläne in der HTTP-Client-Palette fügt labview hands free einen 100 - to Continue
wait zum Claims-Header hinzu, wenn Die Nachricht könnte als Mail 1024 oder höher beschrieben werden. Dies kann Faktoren verursachen, wenn der Server immer mit 417 Failed)
antwortet oder nicht (das Warten weiß, wie es kompetent auf das Warten reagieren kann.
Da die Build-Funktionen, die den Do http-Client betreffen, 100 - Continue
für längere Nachrichten (mehr als 1440 Zeichen) nicht deaktivieren, besteht die Lösung darin, durante - HTTP neu zu erstellen Anforderungsheader mit für Null-Pounding-Ausnahmen . Standards Für HTTP sind die W3C-Schritte spezifisch für die Beschreibung des HTTP-Protokolls.
Error Expectation Failed
Expectativa De Error Fallida
Aspettativa Di Errore Non Riuscita
Fel Förväntan Misslyckades
오류 예상 실패
Ошибка Ожидание не выполнено
Falha Na Expectativa De Erro
Fout Verwachting Mislukt
Échec De L'attente D'erreur
Oczekiwanie Na Błąd Nie Powiodło Się