Problemen met servicehook oplossen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Gebruik dit artikel voor algemene richtlijnen voor probleemoplossing en antwoorden op veelgestelde vragen .)
Activiteits- en foutopsporingsproblemen weergeven
Op de pagina Servicehook in de beheerder voor webtoegang ziet u uw recente activiteit (afgelopen 14 dagen) voor elk abonnement en of een abonnement is ingeschakeld, uitgeschakeld of beperkt.
U hebt toegang tot gedetailleerde geschiedenis van een abonnement, inclusief gedetailleerde aanvraag-/antwoordgegevens, wat handig is voor het opsporen van fouten in een problematische service of abonnement.
Als u de activiteit en status van uw abonnementen wilt bekijken, gaat u naar de pagina Servicehook.
Als u gedetailleerde activiteit voor een abonnement wilt weergeven, inclusief volledige aanvraag-, antwoord- en gebeurtenispayloadgegevens, selecteert u een abonnement in de tabel en selecteert u Geschiedenis.
Abonnementsfouten en proefabonnementen (beperkt)
Fouttypen
Fouten van een servicehookmelding worden gegroepeerd in de volgende categorieën:
- Terminalfouten
- Tijdelijke fouten
- Langdurige fouten
Terminalfouten
De enige terminalfout is HTTP-statuscode 410 (weg). Wanneer een abonnement een terminalfout ziet, wordt het automatisch uitgeschakeld, ongeacht de eerdere status.
Tijdelijke fouten
Wanneer een abonnement een tijdelijke fout ziet, probeert het de melding maximaal acht keer opnieuw te verzenden, met een toenemende vertraging tussen elke poging. Tijdelijke fouten bevatten de volgende codes:
- 408 (time-out van aanvraag)
- 502 (ongeldige gateway)
- 503 (service niet beschikbaar)
- 504 (time-out van gateway)
Reeks nieuwe pogingen voor tijdelijke fouten
Opnieuw # | Wachttijd |
---|---|
Voordat u het opnieuw probeert 1 | wachten ~1 seconde |
Voordat u het opnieuw probeert 2 | wacht ~2 seconden (totale vertraging van 3 seconden) |
Voordat u het opnieuw probeert 3 | wacht ~4 seconden (totale vertraging van 7 seconden) |
Voordat u het opnieuw probeert 4 | wacht ~8 seconden (totale vertraging van 15 seconden) |
Voordat u het opnieuw probeert 5 | wacht ~16 seconden (totale vertraging van 31 seconden) |
Voordat u het opnieuw probeert 6 | wacht ~32 seconden (totale vertraging van 63 seconden) |
Voordat u het opnieuw probeert 7 | wacht ~60 seconden (maximale uitsteltijd, totale vertraging van 123 seconden) |
Voordat u het opnieuw probeert 8 | wacht ~60 seconden (maximale uitsteltijd, totale vertraging van 183 seconden) |
Als de melding alle nieuwe pogingen oploopt en een tijdelijke fout blijft zien voor elke poging, stopt het abonnement met het verzenden van de melding en wordt de melding behandeld alsof er een eindeloze fout is opgetreden.
Langdurige fouten
Langdurige fouten omvatten alle andere HTTP-foutcodes, bijvoorbeeld: 404 (Niet gevonden), 500 (interne serverfout), enzovoort.
Wanneer een abonnement een enduringsfout ziet, wordt het op proef gesteld.
Proeftijd
Tijdens een proefabonnement is een abonnement beperkt in het aantal meldingen dat het kan verzenden. Als het abonnement blijft eindigen op enduringsfouten, wordt het steeds beperkter en uiteindelijk uitgeschakeld. Als het abonnement een geslaagd antwoord ontvangt tijdens een proefabonnement, wordt het hersteld naar een volledig ingeschakelde status.
Reeks van zeven maximaal nieuwe pogingen terwijl het abonnement op proef is
Wanneer een abonnement in probatie is, gaan eventuele nieuwe gebeurtenissen verloren. Zodra een nieuwe poging is gelukt, is het abonnement ingeschakeld en worden gebeurtenissen opnieuw gepubliceerd.
Opnieuw # | Wachttijd |
---|---|
Voordat u het opnieuw probeert 1 | ~20 minuten wachten |
Voordat u het opnieuw probeert 2 | wacht ~40 minuten (totale probatietijd van 1 uur) |
Voordat u het opnieuw probeert 3 | wacht ~1 uur 20 minuten (totale probatietijd van 2,33 uur) |
Voordat u het opnieuw probeert 4 | wacht ~2 uur 40 minuten (totale probatietijd van 5 uur) |
Voordat u het opnieuw probeert 5 | wacht ~5 uur 20 minuten (totale probatietijd van 10,33 uur) |
Voordat u het opnieuw probeert 6 | wacht ~10 uur 40 minuten (totale probatietijd van 21 uur) |
Voordat u het opnieuw probeert 7 | wacht ~15 uur (maximale uitsteltijd, totale probatietijd van 36 uur) |
Na zeven nieuwe pogingen wordt de abonnementsstatus ingesteld op DisabledBySystem als het melden van de consument mislukt.
Veelgestelde vragen
V: Wat is de nettoladinglimiet van een servicehook?
A: De nettoladinglimiet is 2 MB. Grotere payloads veroorzaken een verslechtering van de prestaties en betrouwbaarheid. Als best practice moeten service hooks de payload beperken tot 2 MB of minder.
V: Wat betekent de status Ingeschakeld (beperkt)?
A: Een abonnement wordt beperkt als er te veel fouten optreden. Ingeschakeld (beperkt) is hetzelfde als bij probatie.
V: Wat betekent de status Uitgeschakeld (vanwege fouten) ?
A: Een abonnement wordt automatisch uitgeschakeld nadat een reeks opeenvolgende storingen gedurende een langere periode is opgetreden of er een terminalfout is opgetreden. Typen tijdelijke fouten worden meerdere keren opnieuw geprobeerd voordat een fout wordt gedeclareerd. Langdurige fouttypen worden niet opnieuw geprobeerd. Hier volgen enkele voorbeelden van elk type fout.
- Tijdelijk: 408 (time-out van aanvraag), 502 (ongeldige gateway), 503 (service niet beschikbaar), 504 (time-out van gateway)
- Terminal: 410 (weg)
- Enduring: Alle fouten die niet tijdelijk of terminal zijn
V: Wat betekent de status Uitgeschakeld (gebruiker heeft project verlaten) ?
A: De gebruiker die het abonnement heeft gemaakt, is niet langer lid van het team.
V: Wat moet ik proberen als een servicehook niet werkt?
A: Controleer de volgende items:
Controleer of het abonnement is ingeschakeld
Controleer of de abonnementsinstellingen juist zijn (zowel gebeurtenisfilters als acties)
Bekijk de geschiedenis, vooral als er fouten zijn
V: Kan ik een gewone projectgebruiker de mogelijkheid verlenen om servicehookabonnementen voor een project te bekijken en te beheren?
A: Standaard hebben alleen projectbeheerders deze machtigingen. Als u deze rechtstreeks aan andere gebruikers wilt toekennen, kunt u het opdrachtregelprogramma of de REST API beveiliging gebruiken.
V: Kan ik programmatisch abonnementen maken?
A: Ja, gebruik REST API's.