Solución de problemas de enlaces de servicio

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017

Visualización de problemas de actividad y depuración

La página Enlaces de servicio del administrador de acceso web muestra la actividad reciente (últimos 14 días) para cada suscripción y si una suscripción está habilitada, deshabilitada o restringida.

Se puede acceder a un historial detallado sobre una suscripción, así como a datos detallados de solicitud y respuesta (útiles para depurar un servicio o una suscripción problemáticos).

  1. Para ver la actividad y el estado de las suscripciones, vaya a la página Enlaces de servicio.

    Visualización de la actividad
  2. Para ver la actividad detallada de una suscripción, incluidos los datos completos de solicitud, respuesta y carga de eventos, seleccione una suscripción en la tabla y seleccione Historial.

    Visualización de la actividad detallada de una suscripción
  1. Para ver la actividad y el estado de las suscripciones, vaya a la página Enlaces de servicio.

    Visualización de la actividad
  2. Para ver la actividad detallada de una suscripción, incluidos los datos completos de solicitud, respuesta y carga de eventos, seleccione una suscripción en la tabla y seleccione Historial.

    Visualización de la actividad detallada de una suscripción

Errores de suscripción y sondeo (restringido)

Tipos de error

Los errores de una notificación de service hooks se pueden agrupar en tres categorías:

  • Errores de terminal
  • Errores transitorios
  • Errores duraderos.

Errores de terminal

El único error de terminal es el código de estado HTTP 410 (ya no existe). Cuando una suscripción ve un error de terminal, se deshabilita automáticamente independientemente de su estado anterior.

Errores transitorios

Cuando una suscripción ve un error transitorio, intenta reenviar la notificación hasta ocho veces, con un retraso creciente entre cada intento.

Los errores transitorios incluyen

  • 408 (tiempo de espera de solicitud)
  • 502 (puerta de enlace no segura)
  • 503 (Servicio no disponible)
  • 504 (tiempo de espera de puerta de enlace)

Secuencia de reintentos para errores transitorios

Antes del reintento 1: espere ~1 segundo
Antes del reintento 2: espera ~2 segundos (retraso total de 3 segundos)
Antes del reintento 3: espera ~4 segundos (retraso total de 7 segundos)
Antes del reintento 4: espera ~8 segundos (retraso total de 15 segundos)
Antes del reintento 5: espera ~16 segundos (retraso total de 31 segundos)
Antes del reintento 6: espera ~32 segundos (retraso total de 63 segundos)
Antes del reintento 7: espera ~60 segundos (tiempo máximo de retraso, retraso total de 123 segundos)
Antes del reintento 8: espera ~60 segundos (tiempo máximo de retraso, retraso total de 183 segundos)

Si la notificación agota todos sus reintentos y sigue teniendo un error transitorio para cada intento, la suscripción deja de intentar enviar la notificación y trata la notificación como si hubiera visto un error duradero.

Errores duraderos

Los errores duraderos incluyen todos los demás códigos de error HTTP (por ejemplo: 404 (no encontrado), 500 (error interno del servidor), y así sucesivamente).

Cuando una suscripción ve un error duradero, se coloca en sondeo.*

Libertad condicional

Durante el sondeo, una suscripción está limitada en el número de notificaciones que puede enviar. Si la suscripción sigue teniendo errores duraderos, se limita cada vez más y, finalmente, se deshabilita. Si la suscripción recibe una respuesta correcta durante el sondeo, se restaura a un estado totalmente habilitado.

Secuencia de 7 reintentos máximos mientras la suscripción está en sondeo

Antes del reintento 1: espere aproximadamente 20 minutos.
Antes del reintento 2: espere aproximadamente 40 minutos (tiempo total de sondeo de 1 hora)
Antes del reintento 3: espere ~1 hora 20 minutos (tiempo total de sondeo de 2,33 horas)
Antes del reintento 4: espere ~2 horas 40 minutos (tiempo total de sondeo de 5 horas)
Antes del reintento 5: espere aproximadamente 5 horas y 20 minutos (tiempo total de sondeo de 10,33 horas)
Antes del reintento 6: espere ~10 horas 40 minutos (tiempo total de sondeo de 21 horas)
Antes del reintento 7: espera ~15 horas (tiempo de espera máximo, tiempo total de sondeo de 36 horas)

Después de siete reintentos, el estado de la suscripción se establece en DisabledBySystem si se produce un error al notificar al consumidor.

Preguntas más frecuentes

P: ¿Qué significa el estado Habilitado (restringido)?

A. Una suscripción se restringe si se producen demasiados errores. Habilitado (restringido) es lo mismo que estar en sondeo.

P: ¿Qué significa el estado Deshabilitado (debido a errores)?

A. Una suscripción se deshabilita automáticamente después de una serie de errores consecutivos durante un período prolongado o se produce un error de terminal. Los tipos de errores transitorios se reinterio varias veces antes de declararse un error. Los tipos de error duraderos no se reinterio. A continuación se muestran ejemplos de cada tipo de error.

  • Transitorio: 408 (tiempo de espera de solicitud), 502 (puerta de enlace no segura), 503 (servicio no disponible), 504 (tiempo de espera de puerta de enlace)
  • Terminal: 410 (ya no está)
  • Duradera: todos los errores que no son transitorios o terminales

P: ¿Qué significa el estado Deshabilitado (proyecto de la izquierda del usuario)?

A. El usuario que creó la suscripción ya no es miembro del equipo.

P: ¿Qué debo probar si un enlace de servicio no funciona?

A. Compruebe lo siguiente:

  • Confirme que la suscripción está habilitada.

  • Confirme que la configuración de la suscripción es correcta (tanto los filtros de eventos como las acciones).

  • Mire el historial, especialmente si hay errores.

P: ¿Puedo conceder a un usuario de proyecto normal la capacidad de ver y administrar suscripciones de enlace de servicio para un proyecto?

A. De forma predeterminada, solo los administradores de proyectos tienen estos permisos. Para concederlos directamente a otros usuarios, puede usar la herramienta de línea de comandos o la API REST de seguridad.

P: ¿Puedo crear suscripciones mediante programación?

A: Sí, use las API REST.