Felsöka tjänstkrokar

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Använd den här artikeln för allmän felsökningsvägledning och svar på vanliga frågor och svar.

Visa aktivitets- och felsökningsproblem

Sidan Service Hooks i webbåtkomstadministratören visar din senaste aktivitet (de senaste 14 dagarna) för varje prenumeration och om en prenumeration är aktiverad, inaktiverad eller begränsad.

Du kan komma åt detaljerad historik om en prenumeration, inklusive detaljerade begärande-/svarsdata, vilket är användbart för felsökning av en problematisk tjänst eller prenumeration.

  1. Om du vill visa aktivitet och status för dina prenumerationer går du till sidan Service Hooks .

    Skärmbild som visar visning av aktivitet och status för prenumerationer.

  2. Om du vill visa detaljerad aktivitet för en prenumeration, inklusive fullständiga data om begäran, svar och händelsenyttolast, väljer du en prenumeration i tabellen och väljer sedan Historik.

    Skärmbild som visar detaljerad vy över aktivitet för en prenumeration.

Prenumerationsfel och skyddstillsyn (begränsad)

Feltyper

Fel från ett Service Hooks-meddelande grupperas i följande kategorier:

  • Terminalfel
  • Tillfälliga fel
  • Bestående fel

Terminalfel

Det enda terminalfelet är HTTP-statuskod 410 (borta). När en prenumeration ser ett terminalfel inaktiveras den automatiskt oavsett dess tidigare status.

Tillfälliga fel

När en prenumeration ser ett tillfälligt fel försöker den skicka meddelandet igen upp till åtta gånger, med en ökande fördröjning mellan varje försök. Tillfälliga fel innehåller följande koder:

  • 408 (tidsgräns för begäran)
  • 502 (felaktig gateway)
  • 503 (tjänsten är inte tillgänglig)
  • 504 (Gateway-timeout)

Sekvens med återförsök för tillfälliga fel

Igen # Väntetid
Innan du försöker igen 1 vänta ~1 sekund
Innan du försöker igen 2 vänta ~2 sekunder (total fördröjning på 3 sekunder)
Innan du försöker igen 3 vänta ~4 sekunder (total fördröjning på 7 sekunder)
Innan du försöker igen 4 vänta ~8 sekunder (total fördröjning på 15 sekunder)
Innan du försöker igen 5 vänta ~16 sekunder (total fördröjning på 31 sekunder)
Innan du försöker igen 6 vänta ~32 sekunder (total fördröjning på 63 sekunder)
Innan du försöker igen 7 vänta ~60 sekunder (maximal backoff-tid, total fördröjning på 123 sekunder)
Innan du försöker igen 8 vänta ~60 sekunder (maximal backoff-tid, total fördröjning på 183 sekunder)

Om meddelandet tar bort alla sina återförsök och fortsätter att se ett tillfälligt fel för varje försök slutar prenumerationen att försöka skicka meddelandet och behandlar meddelandet som om det såg ett bestående fel.

Bestående fel

Bestående fel omfattar alla andra HTTP-felkoder, till exempel 404 (hittades inte), 500 (internt serverfel) och så vidare.

När en prenumeration ser ett bestående fel placeras den på skyddstillsyn.

Skyddstillsyn

Under skyddstillsyn är en prenumeration begränsad i antalet meddelanden som den kan skicka. Om prenumerationen fortsätter att drabbas av bestående fel blir den alltmer begränsad och inaktiveras så småningom. Om prenumerationen får ett lyckat svar under prövotiden återställs den till ett fullständigt aktiverat tillstånd.

Sekvens med sju maximala återförsök medan prenumerationen är skyddstillsyn

När en prenumeration är under skyddstillsyn går alla nya händelser förlorade. När ett nytt försök har slutförts aktiveras prenumerationen och händelser publiceras igen.

Igen # Väntetid
Innan du försöker igen 1 vänta ~20 minuter
Innan du försöker igen 2 vänta ~40 minuter (total prövotid på 1 timme)
Innan du försöker igen 3 vänta ~1 timme 20 minuter (total prövotid på 2,33 timmar)
Innan du försöker igen 4 vänta ~2 timmar 40 minuter (total prövotid på 5 timmar)
Innan du försöker igen 5 vänta ~5 timmar 20 minuter (total prövotid på 10,33 timmar)
Innan du försöker igen 6 vänta ~10 timmar 40 minuter (total prövotid på 21 timmar)
Innan du försöker igen 7 vänta ~15 timmar (maximal backoff-tid, total prövotid på 36 timmar)

Efter sju återförsök anges prenumerationsstatusen till DisabledBySystem om det inte går att meddela konsumenten.

Vanliga frågor och svar

F: Vad är nyttolastgränsen för en tjänstkrok?

S: Nyttolastgränsen är 2 MB. Större nyttolaster orsakar försämrade prestanda och tillförlitlighet. Som bästa praxis bör tjänsthookar begränsa nyttolasten till 2 MB eller mindre.

F: Vad betyder statusen Aktiverad (begränsad)?

S: En prenumeration begränsas om för många fel inträffar. Aktiverat (begränsat) är detsamma som att vara under skyddstillsyn.

F: Vad betyder statusen Inaktiverad (på grund av fel)?

S: En prenumeration inaktiveras automatiskt efter en serie på varandra följande fel under en längre period eller ett terminalfel påträffas. Tillfälliga feltyper görs om flera gånger innan de deklareras som ett fel. Varaktiga feltyper görs inte på nytt. Följande är exempel på varje typ av fel.

  • Tillfälligt: 408 (tidsgräns för begäran), 502 (felaktig gateway), 503 (tjänsten är inte tillgänglig), 504 (tidsgräns för gateway)
  • Terminal: 410 (Borta)
  • Bestående: Alla fel som inte är tillfälliga eller terminaler

F: Vad betyder statusen Inaktiverad (användaren lämnade projektet)?

S: Användaren som skapade prenumerationen är inte längre medlem i teamet.

F: Vad ska jag prova om en tjänstkrok inte fungerar?

S: Kontrollera följande:

  • Bekräfta att prenumerationen är aktiverad

  • Bekräfta att prenumerationsinställningarna är korrekta (både händelsefilter och åtgärder)

  • Titta på historiken, särskilt om det finns fel

F: Kan jag ge en vanlig projektanvändare möjlighet att visa och hantera service hook-prenumerationer för ett projekt?

S: Som standard har endast projektadministratörer dessa behörigheter. Om du vill bevilja dem till andra användare direkt kan du använda kommandoradsverktyget eller säkerhets-REST-API:et.

F: Kan jag programmatiskt skapa prenumerationer?

S: Ja, använd REST-API:er.