Delen via


Problemen met service hooks oplossen

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

Dit artikel bevat algemene richtlijnen voor probleemoplossing voor Azure DevOps-servicehook. Het biedt ook antwoorden op veelgestelde vragen (veelgestelde vragen).

Activiteits- en foutopsporingsproblemen weergeven

De pagina Service Hooks in de webtoegangsbeheerder bevat een overzicht van de activiteit van de afgelopen zeven dagen voor elk abonnement. Op de pagina ziet u ook of elk abonnement is ingeschakeld, uitgeschakeld of beperkt.

Voor elk abonnement hebt u toegang tot een gedetailleerde geschiedenis met de volledige aanvraag- en antwoordgegevens voor elke gebeurtenis. Deze informatie kan u helpen bij het opsporen van fouten in een problematische service of abonnement.

  1. Als u de activiteit en status van uw abonnementen wilt bekijken, gaat u naar de pagina Service Hooks.

    Schermopname van de pagina Service Hooks met de status, status en andere gegevens voor abonnementen. Projectinstellingen en servicehook zijn gemarkeerd.

  2. 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 vervolgens Geschiedenis.

    Schermopname van de geschiedenis van een abonnement, met gedetailleerde informatie voor een mislukte gebeurtenis, zoals de status, het bericht en het foutbericht.

Abonnementsfouten en proeftijd (beperkt)

Als het HTTP-antwoord op een meldingsaanvraag een fout aangeeft, bepaalt de ernst van de fout hoe Azure DevOps reageert. Bepaalde soorten fouten kunnen abonnementen uitschakelen of ze op proef stellen.

Fouttypen

Fouten van service hook-meldingen worden gegroepeerd in de volgende categorieën:

  • Terminalfouten
  • Tijdelijke fouten
  • Aanhoudende fouten

De foutcode van het HTTP-antwoord bepaalt hoe Azure DevOps de fout categoriseert.

Terminalfouten

De enige HTTP-statuscode die is gecategoriseerd als een terminalfout is 410 (verdwenen).

Wanneer er een terminalfout optreedt in een abonnement, wordt het abonnement automatisch uitgeschakeld, ongeacht de eerdere status.

Tijdelijke fouten

HTTP-antwoorden met de volgende statuscodes worden gecategoriseerd als tijdelijke fouten:

  • 408 (time-out van aanvraag)
  • 502 (Bad Gateway)
  • 503 (service niet beschikbaar)
  • 504 (timeout van gateway)

Wanneer er een tijdelijke fout optreedt in een abonnement, probeert Azure DevOps de melding maximaal acht keer opnieuw te verzenden, met een toenemende vertraging tussen elke poging.

De volgende tabel bevat informatie over nieuwe pogingen die worden geprobeerd na een tijdelijke fout. Opgenomen is de geschatte uitsteltijd of de tijd die moet worden gewacht voordat een melding opnieuw wordt verzonden. De maximale uitsteltijd is 60 seconden. In de tabel ziet u ook de totale vertraging voor elke nieuwe poging.

Nummer opnieuw proberen Uitsteltijd in seconden Totale vertraging in seconden
1 1 1
2 2 3
3 4 7
4 8 15
5 16 31
6 32 63
7 60 123
8 60 183

Als alle nieuwe pogingen voor een melding zijn uitgeput en elke poging resulteert in een tijdelijke fout, wordt de melding niet meer verzonden. In plaats daarvan wordt het gecategoriseerd als een duurzame fout.

Langdurige fouten

Alle andere HTTP-foutcodes, bijvoorbeeld 404 (niet gevonden) en 500 (interne serverfout), leiden tot langdurige fouten.

Wanneer er een langdurige fout optreedt in een abonnement, wordt het abonnement op probatie geplaatst.

Proeftijd

Wanneer een abonnement op proef is, gaan eventuele nieuwe gebeurtenissen verloren. Het systeem voert een beperkt aantal pogingen uit om de mislukte melding opnieuw te verzenden.

De volgende tabel bevat geschatte uitsteltijden en totale probatietijden voor nieuwe pogingen die tijdens een proeftijd worden geprobeerd. Er worden maximaal zeven herhalingspogingen gedaan, en de maximale backoff-tijd voor een herhalingspoging bij proeftijd is 15 uur.

Nummer opnieuw proberen Uitsteltijd Totale probatietijd in uren
1 20 minuten 0,33
2 40 minuten 1
3 1 uur en 20 minuten 2.33
4 2 uur 40 minuten 5
5 5 uur en 20 minuten 10.33
6 10 uur 40 minuten 21
7 15 uur 36

Als het abonnement een positief antwoord ontvangt tijdens een proefperiode, wordt het hersteld naar een volledig geactiveerde status en worden gebeurtenissen opnieuw gepubliceerd. Als alle zeven nieuwe pogingen mislukken, wordt de abonnementsstatus ingesteld op DisabledBySystem.

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 servicehooks de payload beperken tot 2 MB.

V: Wat betekent de status Ingeschakeld (beperkt)?

A: Een abonnement wordt beperkt als er te veel fouten optreden. De status Ingeschakeld (beperkt) is hetzelfde als een proeftijd.

V: Wat betekent de status Uitgeschakeld (vanwege fouten) ?

Een: In de volgende gevallen wordt een abonnement automatisch uitgeschakeld:

  • Er is een terminalfout opgetreden.
  • Een reeks opeenvolgende fouten treedt op gedurende een langere periode.

Meldingen die tot tijdelijke fouten leiden, worden meerdere keren opnieuw geprobeerd voordat ze duurzame fouten worden gedeclareerd. Langdurige foutmeldingen worden een beperkt aantal keren opnieuw geprobeerd tijdens een proeftijd. Als alle herhaalde pogingen tijdens de proeftijd mislukken, wordt het abonnement uitgeschakeld.

De volgende statuscodes bevatten voorbeelden van elk type fout:

  • Tijdelijke: 408 (time-out bij aanvraag), 502 (Bad 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 geen lid meer 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. Controleer gebeurtenisfilters en 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 ze rechtstreeks aan andere gebruikers wilt verlenen, kunt u het opdrachtregelprogramma of de Security REST API gebruiken.

V: Kan ik programmatisch abonnementen maken?

A: Ja, gebruik REST API's.