Solución de problemas de enlaces de servicio
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Use este artículo para obtener instrucciones generales de solución de problemas y respuestas a las preguntas más frecuentes (P+F).
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.
Puede acceder al historial detallado sobre una suscripción, incluidos los datos detallados de solicitud y respuesta, lo que resulta útil para depurar un servicio o una suscripción problemáticos.
Para ver la actividad y el estado de las suscripciones, vaya a la página Enlaces de servicio .
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, a continuación, seleccione Historial.
Errores de suscripción y libertad condicional (restringido)
Tipos de error
Los errores de una notificación de enlaces de servicio se agrupan en las siguientes categorías:
- Errores de terminal
- Errores transitorios
- Errores perdurables
Errores de terminal
El único error de terminal es el código de estado HTTP 410 (desaparecido). 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 volver a enviar la notificación hasta ocho veces, con un retraso creciente entre cada intento. Los errores transitorios incluyen los siguientes códigos:
- 408 (tiempo de espera de solicitud)
- 502 (puerta de enlace incorrecta)
- 503 (Servicio no disponible)
- 504 (tiempo de espera de puerta de enlace)
Secuencia de reintentos para errores transitorios
Reintentar # | Tiempo de espera |
---|---|
Antes de reintentar 1 | espera ~1 segundo |
Antes del reintento 2 | esperar ~2 segundos (retraso total de 3 segundos) |
Antes del reintento 3 | esperar ~4 segundos (retraso total de 7 segundos) |
Antes del reintento 4 | espera ~8 segundos (retraso total de 15 segundos) |
Antes de reintentar 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 de retroceso máximo, retraso total de 123 segundos) |
Antes del reintento 8 | espera ~60 segundos (tiempo de retroceso máximo, retraso total de 183 segundos) |
Si la notificación agota todos sus reintentos y continúa viendo un error transitorio para cada intento, la suscripción deja de intentar enviar la notificación y trata la notificación como si viera un error duradero.
Errores perdurables
Los errores duraderos incluyen todos los demás códigos de error HTTP, por ejemplo: 404 (no encontrado), 500 (error interno del servidor), etc.
Cuando una suscripción ve un error perdurable, se coloca en libertad condicional.
Período de prueba
Mientras está en libertad condicional, una suscripción está limitada en el número de notificaciones que puede enviar. Si la suscripción sigue teniendo errores perdurables, se limita cada vez más y finalmente se deshabilita. Si la suscripción recibe una respuesta correcta mientras está en libertad condicional, se restaura a un estado totalmente habilitado.
Secuencia de siete reintentos máximos mientras la suscripción está en libertad condicional
Cuando una suscripción está en libertad condicional, se pierden los nuevos eventos. Una vez que se realiza correctamente un reintento, la suscripción está habilitada y los eventos se vuelven a publicar.
Reintentar # | Tiempo de espera |
---|---|
Antes de reintentar 1 | esperar aproximadamente 20 minutos |
Antes del reintento 2 | espera ~40 minutos (tiempo total de libertad condicional de 1 hora) |
Antes del reintento 3 | esperar aproximadamente 1 hora 20 minutos (tiempo total de prueba de 2,33 horas) |
Antes del reintento 4 | esperar aproximadamente 2 horas 40 minutos (tiempo total de prueba de 5 horas) |
Antes de reintentar 5 | esperar aproximadamente 5 horas 20 minutos (tiempo total de prueba de 10,33 horas) |
Antes del reintento 6 | esperar aproximadamente 10 horas 40 minutos (tiempo total de prueba de 21 horas) |
Antes del reintento 7 | espera ~15 horas (tiempo de retroceso máximo, tiempo total de prueba de 36 horas) |
Después de siete reintentos, el estado de la suscripción se establece en DisabledBySystem si se produce un error en la notificación al consumidor.
Preguntas más frecuentes
P: ¿Cuál es el límite de carga de un enlace de servicio?
R: El límite de carga es de 2 MB. Las cargas más grandes provocan una degradación del rendimiento y la confiabilidad. Como procedimiento recomendado, los enlaces de servicio deben limitar la carga a 2 MB o menos.
P: ¿Qué significa el estado Habilitado (restringido)?
R: Una suscripción se restringe si se producen demasiados errores. Habilitado (restringido) es el mismo que estar en libertad condicional.
P: ¿Qué significa el estado Deshabilitado (debido a errores)?
R: Una suscripción se deshabilita automáticamente después de que se encuentre una serie de errores consecutivos durante un período prolongado o un error de terminal. Los tipos de errores transitorios se reintentan varias veces antes de declararse un error. Los tipos de error duraderos no se reintentan. A continuación se muestran ejemplos de cada tipo de error.
- Transitorio: 408 (tiempo de espera de solicitud), 502 (puerta de enlace incorrecta), 503 (servicio no disponible), 504 (tiempo de espera de puerta de enlace)
- Terminal: 410 (desaparecido)
- Perdurable: todos los errores que no son transitorios o terminales
P: ¿Qué significa el estado Deshabilitado (proyecto izquierdo del usuario)?
R: El usuario que creó la suscripción ya no es miembro del equipo.
P: ¿Qué debo probar si un enlace de servicio no funciona?
R: Compruebe los siguientes elementos:
Confirmación de 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)
Examine 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?
R: De forma predeterminada, solo los administradores del proyecto tienen estos permisos. Para concederlos a otros usuarios directamente, puede usar la herramienta de línea de comandos o la API REST de Seguridad.
P: ¿Puedo crear suscripciones mediante programación?
R: Sí, use las API REST.