Freigeben über


Die Azure-API gibt eine leere Antwort zurück

In Bezug auf den Artikel zur Azure API Management-Problembehandlungsreihe ist dies das erste Szenario des Labs. Stellen Sie sicher, dass Sie die Anweisungen zum Einrichten des Labs wie folgt befolgt haben, um das Problem neu zu erstellen.

Ursprüngliche Produktversion: API Management Service
Ursprüngliche KB-Nummer: 4464936

Problembeschreibung

Die API Blank-API besteht aus den beiden Vorgängen GetHeaders und GetMyIp. GetMyIp gibt den Wert des X-FORWARDED-FOR-Headerwerts zurück, und GetHeaders gibt alle Anforderungsheaderwerte zurück. GetMyIp gibt die erwartete Ausgabe zurück, aber plötzlich hat GetHeaders damit begonnen, eine leere Antwort (kein Antworttext) zurückzugeben.

Screenshot einer leeren Antwort.

Die erwartete Ausgabe der GetHeaders-API sollte in etwa wie folgt aussehen:

{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Connection": "close", 
    "Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1", 
    "Host": "eu.httpbin.org", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
  }
}

Schritte zur Problembehandlung

Um diese Art von Problemen zu debuggen, besteht der beste Ansatz darin, die Ablaufverfolgung des APIM-Inspektors zu sammeln, um die Anforderungsverarbeitung innerhalb der APIM-Pipeline zu untersuchen.

  • Wenn Sie sich die Ablaufverfolgung ansehen, werden Sie feststellen, dass die Weiterleitungsanforderungsrichtlinie fehlt.
  • Die Forward-Request-Richtlinie leitet die eingehende Anforderung an den Back-End-Dienst weiter, der im Anforderungskontext angegeben ist.
  • Das Entfernen dieser Richtlinie führt dazu, dass die Anforderung nicht an den Back-End-Dienst weitergeleitet wird, und die Richtlinien im Ausgehenden Abschnitt werden sofort nach erfolgreichem Abschluss der Richtlinien im Eingehenden Abschnitt ausgewertet.
  • Wenn Sie also den <Back-End-Abschnitt> des GetHeaders-Vorgangs unter Blank-API überprüfen, werden Sie feststellen, dass die Weiterleitungsanforderungsrichtlinie entfernt wird.
  • Fügen Sie die Forward-Request-Richtlinie im Back-End-Abschnitt hinzu, oder fügen Sie <basis/> element hinzu, sodass die Forward-Request-Richtlinie von der übergeordneten Ebene (d. h. von der API-Ebene) erbt, wodurch das Problem behoben werden sollte.

Weitere Informationen zur Weiterleitungsanforderungsrichtlinie finden Sie hier.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.