Freigeben über


Problembehandlung bei Service Hooks

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Dieser Artikel enthält allgemeine Anleitungen zur Problembehandlung für Azure DevOps-Dienst-Hooks. Außerdem erhalten Sie Antworten auf häufig gestellte Fragen (FAQs).

Aktivitäten anzeigen und Probleme beheben

Die Seite "Service Hooks" im Webzugriffsadministrator fasst aktivitäten aus den letzten sieben Tagen für jedes Abonnement zusammen. Auf der Seite wird auch angezeigt, ob jedes Abonnement aktiviert, deaktiviert oder eingeschränkt ist.

Für jedes Abonnement können Sie auf einen detaillierten Verlauf zugreifen, der die vollständigen Anforderungs- und Antwortdaten für jedes Ereignis enthält. Diese Informationen können Ihnen beim Debuggen eines problematischen Diensts oder Abonnements helfen.

  1. Um die Aktivität und den Status Ihrer Abonnements anzuzeigen, wechseln Sie zur Seite "Service Hooks ".

    Screenshot der Seite

  2. Wenn Sie detaillierte Aktivitäten für ein Abonnement anzeigen möchten, einschließlich vollständiger Anforderungs-, Antwort- und Ereignisnutzlastdaten, wählen Sie ein Abonnement in der Tabelle aus, und wählen Sie dann " Verlauf" aus.

    Screenshot des Verlaufs eines Abonnements mit detaillierten Informationen zu einem fehlgeschlagenen Ereignis, z. B. Status, Meldung und Fehlermeldung.

Abonnement-Fehler und Bewährung (eingeschränkt)

Wenn die HTTP-Antwort auf eine Benachrichtigungsanforderung einen Fehler angibt, bestimmt der Schweregrad des Fehlers, wie Azure DevOps reagiert. Bestimmte Arten von Fehlern können Abonnements deaktivieren oder in den Wartemodus versetzen.

Fehlertypen

Fehler bei Service-Hook-Benachrichtigungen werden in die folgenden Kategorien eingeteilt:

  • Terminalfehler
  • Vorübergehende Fehler
  • Dauerhafte Fehler

Der Fehlercode aus der HTTP-Antwort bestimmt, wie Azure DevOps den Fehler kategorisiert.

Terminalfehler

Der einzige HTTP-Statuscode, der als Terminalfehler kategorisiert ist, ist 410 (Nicht vorhanden).

Wenn ein Terminalfehler in einem Abonnement auftritt, wird das Abonnement unabhängig vom vorherigen Status automatisch deaktiviert.

Vorübergehende Fehler

HTTP-Antworten mit den folgenden Statuscodes werden als vorübergehende Fehler kategorisiert:

  • 408 (Anforderungstimeout)
  • 502 (Ungültiges Gateway)
  • 503 (Dienst nicht verfügbar)
  • 504 (Gateway-Zeitüberschreitung)

Wenn ein vorübergehender Fehler in einem Abonnement auftritt, versucht Azure DevOps, die Benachrichtigung bis zu acht Mal erneut zu senden, wobei sich die Verzögerung zwischen jedem Versuch erhöht.

In der folgenden Tabelle sind Informationen zu Wiederholungen aufgeführt, die nach einem vorübergehenden Fehler versucht werden. Enthalten ist die ungefähre Backoffzeit oder die Wartezeit, bevor versucht wird, eine Benachrichtigung erneut zu senden. Die maximale Backoffzeit beträgt 60 Sekunden. In der Tabelle werden auch die Gesamtverzögerungen für jede Wiederholungsversuch angezeigt.

Wiederholungsanzahl Backoffzeit in Sekunden Gesamtverzögerung in Sekunden
1 1 1
2 2 3
3 4 7
4 8 15
5 16 31
6 32 63
7 60 123
8 60 183

Wenn alle Wiederholungsversuche für eine Benachrichtigung erschöpft sind und jeder Versuch zu einem vorübergehenden Fehler führt, wird die Benachrichtigung nicht mehr gesendet. Stattdessen wird sie als dauerhafter Fehler kategorisiert.

Dauerhafte Fehler

Alle anderen HTTP-Fehlercodes, z. B. 404 (Nicht gefunden) und 500 (Interner Serverfehler), führen zu dauerhaften Fehlern.

Wenn ein dauerhafter Fehler in einem Abonnement auftritt, wird das Abonnement zur Probe gestellt.

Bewährung

Wenn ein Abonnement auf Bewährung steht, gehen alle neuen Ereignisse verloren. Das System führt eine begrenzte Anzahl von Versuchen aus, die fehlgeschlagene Benachrichtigung erneut zu senden.

In der folgenden Tabelle sind ungefähre Backoffzeiten und Gesamtprobezeiten für Wiederholungsversuche aufgeführt, die während der Probezeit ausgeführt werden. Es werden höchstens sieben Wiederholungsversuche unternommen, und die maximale Backoffzeit für einen Probezeitversuch beträgt 15 Stunden.

Wiederholungsanzahl Rückzugszeit Gesamtbewährungszeit in Stunden
1 20 Minuten 0,33
2 40 Minuten 1
3 1 Stunde 20 Minuten 2.33
4 2 Stunden 40 Minuten 5
5 5 Stunden 20 Minuten 10.33
6 10 Stunden 40 Minuten 21
7 15 Stunden 36

Wenn das Abonnement während der Bewährung eine erfolgreiche Antwort erhält, wird es wieder in einen voll aktivierten Zustand wiederhergestellt, und Ereignisse werden erneut veröffentlicht. Wenn alle sieben Wiederholungen fehlschlagen, wird der Abonnementstatus auf DisabledBySystem festgelegt.

Verwenden von KI zur Problembehandlung eines Diensthakens

Die folgende Beispielaufforderung für Copilot Chat hilft Copilot bei der Problembehandlung Ihres Fehlercodes und Ihrer Fehlermeldung. Kopieren Sie diese Eingabeaufforderung, und fügen Sie sie in Copilot Chat ein, und ersetzen Sie den Platzhalter durch Ihre spezifische Fehlermeldung.

I'm getting this Azure DevOps service hook error: [PASTE YOUR ERROR MESSAGE HERE]

Can you help me troubleshoot this issue? Please provide step-by-step instructions to:
1. Identify the root cause
2. Fix the issue
3. Verify the solution works

Context: This is for a service hook in Azure DevOps.

Häufig gestellte Fragen

F: Was ist die Nutzlastgrenze eines Diensthakens?

A: Das Nutzlastlimit beträgt 2 MB. Umfangreichere Nutzdaten führen zu Einbußen bei Leistung und Zuverlässigkeit. Als bewährte Methode sollten Service-Hooks die Nutzlast auf 2 MB beschränken.

F: Was bedeutet der Status "Aktiviert" (eingeschränkt) ?

A: Ein Abonnement wird eingeschränkt, wenn zu viele Fehler auftreten. Der Status "Aktiviert" (eingeschränkt) ist identisch mit der Bewährung.

F: Was bedeutet der Status "Deaktiviert" (aufgrund von Fehlern) ?

A: Ein Abonnement wird in den folgenden Fällen automatisch deaktiviert:

  • Es ist ein Terminalfehler aufgetreten.
  • Eine Reihe aufeinander folgender Fehler tritt über einen längeren Zeitraum auf.

Benachrichtigungen, die zu vorübergehenden Fehlern führen, werden mehrmals wiederholt, bevor dauerhafte Fehler deklariert werden. Dauerhafte Fehlerbenachrichtigungen werden während der Probezeit nur eingeschränkt wiederholt. Wenn alle Wiederholungsversuche fehlschlagen, wird das Abonnement deaktiviert.

Die folgenden Statuscodes enthalten Beispiele für jeden Fehlertyp:

  • Vorübergehend: 408 (Anforderungstimeout), 502 (Fehlerhaftes Gateway), 503 (Dienst nicht verfügbar), 504 (Gateway-Timeout)
  • Terminal: 410 (nicht mehr vorhanden)
  • Dauerhaft: Alle Fehler, die nicht vorübergehend oder terminal sind

F: Was bedeutet der Status "Deaktiviert" (Benutzer hat Projekt verlassen)?

Ein: Der Benutzer, der das Abonnement erstellt hat, ist kein Mitglied des Teams mehr.

F: Was kann ich tun, wenn ein Service-Hook nicht funktioniert?

A: Überprüfen Sie die folgenden Elemente:

  • Vergewissern Sie sich, dass das Abonnement aktiviert ist.
  • Bestätigen Sie, dass die Abonnementeinstellungen korrekt sind. Überprüfen sie Ereignisfilter und -aktionen.
  • Sehen Sie sich den Verlauf an, insbesondere, wenn Fehler auftreten.

F: Kann ich einem regulären Projektbenutzer die Möglichkeit gewähren, Service Hook-Abonnements für ein Projekt anzuzeigen und zu verwalten?

A: Standardmäßig verfügen nur Projektadministratoren über diese Berechtigungen. Um sie anderen Benutzern direkt zu gewähren, können Sie das Befehlszeilentool oder die Sicherheits-REST-API verwenden.

F: Kann ich Abonnements programmgesteuert erstellen?

A: Ja, verwenden Sie REST APIs.