Solución de Problemas: Despliegue¶
Guía de diagnóstico para los problemas más frecuentes al configurar y poner en marcha Flexygo.
Configuración¶
El Frontend no conecta con el Backend¶
Síntoma: La aplicación Frontend carga pero no muestra datos. Las peticiones a la API devuelven errores de red (Failed to fetch, ERR_CONNECTION_REFUSED) o errores CORS.
Causa: La URL del backend configurada en appsettings.json del Frontend es incorrecta, apunta a un host no accesible, o falta el protocolo (http://).
Solución:
- Abre el
conf\appsettings.jsondel Frontend en el directorio de instalación. - Localiza la clave
BackendEndpointy verifica que apunta a la URL correcta del Backend, terminada en/api/backend/: - Asegúrate de que la URL incluye el protocolo (
http://ohttps://) y la ruta virtual si la hay. Si Frontend y Backend están en el mismo servidor, usa una dirección local (localhost) y no el dominio público. - Si usas HTTPS, verifica que el certificado SSL es válido y de confianza.
- Reinicia el pool de aplicaciones del Frontend en IIS.
Asistente de configuración
Puedes usar el asistente de configuración integrado para establecer la URL del backend sin editar appsettings.json manualmente. Consulta la guía de configuración del despliegue.
El Backend no arranca: error de base de datos¶
Síntoma: El Backend devuelve HTTP 500 en todas las peticiones. Los logs de IIS o del Event Viewer muestran mensajes como Cannot open database, Login failed for user o A network-related error occurred.
Causa: La cadena de conexión a SQL Server en appsettings.json del Backend es incorrecta: servidor mal escrito, credenciales erróneas o la base de datos no existe.
Solución:
- Abre el
conf\appsettings.jsondel Backend en el directorio de instalación. - Localiza las claves
ConnectionStrings.ConfConnectionString(base de datos de configuración) yConnectionStrings.DataConnectionString(base de datos de datos) y verifica cada parte:JSONEn IIS y en un contenedor de producción las cadenas de conexión están cifradas (empiezan por{ "ConnectionStrings": { "ConfConnectionString": "Data Source=NOMBRE_SERVIDOR;Initial Catalog=NOMBRE_BD_CONF;User ID=USUARIO;Password=CONTRASEÑA;Encrypt=False;Trust Server Certificate=True", "DataConnectionString": "Data Source=NOMBRE_SERVIDOR;Initial Catalog=NOMBRE_BD_DATOS;User ID=USUARIO;Password=CONTRASEÑA;Encrypt=False;Trust Server Certificate=True" } }enc:v1:). Para leerlas o cambiarlas, descífralas conFlexygo.Backend.exe config decrypt, edítalas y reinicia; al arrancar se vuelven a cifrar. Ver ¿Cómo descifrar y volver a cifrar la configuración? y Cifrado de los appsettings. - Comprueba que puedes conectarte con esas credenciales desde SQL Server Management Studio o
sqlcmd. - Si usas autenticación de Windows, asegúrate de que la cuenta del pool de aplicaciones tiene acceso a la BD.
- Reinicia el pool de aplicaciones del Backend.
Cambios en appsettings.json no tienen efecto¶
Síntoma: Se edita appsettings.json pero la aplicación sigue comportándose igual. Los cambios no se reflejan.
Causa: La aplicación tiene el archivo cacheado en memoria. IIS no detecta el cambio automáticamente en todos los entornos.
Solución:
- En IIS, selecciona el pool de aplicaciones correspondiente.
- Haz clic derecho → Reciclar (Recycle).
- Si el problema persiste, detén y vuelve a iniciar el pool de aplicaciones.
Bucle de redirecciones infinito tras un proxy inverso¶
Síntoma: La aplicación no llega a cargar y el navegador redirige sin parar. Al inspeccionar la petición se ve una respuesta 307 cuya cabecera location es idéntica a la URL solicitada. No aparece ningún error en ninguna parte: ni en el Visor de eventos, ni en los logs de la aplicación, ni en los de IIS.
Causa: Hay un proxy inverso delante (nginx, ARR, un balanceador) que termina el TLS y entrega la petición a Flexygo por http sin reenviar la cabecera X-Forwarded-Proto. La aplicación cree entonces que la petición es insegura y redirige a https; el proxy la vuelve a entregar por http y el ciclo no termina. Un 307 es una respuesta correcta, y por eso no se registra en ningún sitio.
Solución:
- Configura el proxy para que reenvíe el esquema original. En nginx, dentro del bloque
location: - Recarga el proxy y vuelve a probar.
- Si no puedes tocar el proxy de inmediato, desactiva la redirección en el
appsettings.jsondel Frontend y recicla el pool de aplicaciones:
Configuración completa
Los requisitos de un despliegue con proxy delante están en Despliegue tras un proxy inverso.
La auditoría de accesos registra siempre la misma IP¶
Síntoma: Todos los inicios de sesión aparecen con la misma dirección IP, o las restricciones de IP por usuario bloquean a quien no deberían.
Causa: Hay un proxy inverso delante y la aplicación está viendo su dirección en lugar de la del cliente. Flexygo sólo acepta la IP reenviada cuando la petición procede de un proxy declarado.
Solución:
- Averigua desde qué dirección abre el proxy la conexión contra el servidor. En IIS es el campo
c-ipdel log del sitio, bajoC:\inetpub\logs\LogFiles. - Declárala en el
appsettings.jsonde Frontend y Backend: - Comprueba que el proxy reenvía la cabecera
X-Forwarded-For. - Recicla los pools de aplicaciones.
Proxy en la misma máquina
Si el proxy corre en el mismo servidor que Flexygo no hace falta declarar nada: las direcciones locales se aceptan de fábrica.
Entorno de desarrollo¶
VS Code no reconoce el proyecto (IntelliSense no funciona)¶
Síntoma: VS Code muestra errores de referencia en archivos .cs. IntelliSense no ofrece sugerencias o muestra "Unable to resolve...". La extensión C# Dev Kit muestra advertencias en la barra de estado.
Causa más frecuente A: El .NET SDK requerido no está instalado o la versión es incorrecta.
Causa más frecuente B: VS Code se abrió en un directorio padre en lugar del directorio raíz del proyecto/solución .sln.
Solución A — Verificar SDK:
El proyecto Flexygo requiere .NET 9 para el backend/frontend. El servidor MCP requiere .NET 10. Si falta alguno, descárgalo desde https://dotnet.microsoft.com/download.
Solución B — Abrir el directorio correcto:
- En VS Code, usa Archivo → Abrir carpeta y selecciona la carpeta que contiene el archivo
.slnde tu solución. - Alternativamente, abre la solución directamente desde Visual Studio 2022.
- Recarga la ventana con
Ctrl+Shift+P→ Developer: Reload Window.
Visual Studio 2022
Para trabajar con proyectos de base de datos (.sqlproj), se requiere Visual Studio 2022. VS 2026 Insiders no soporta proyectos de BD estilo SDK. Consulta los requisitos del producto.
Docker: el contenedor no arranca o reinicia en bucle¶
Síntoma: Al ejecutar docker compose up, uno o varios contenedores entran en estado Restarting. Los logs muestran errores de conexión o variables de entorno no definidas.
Causa más frecuente: Variables de entorno no definidas en el archivo .env o cadena de conexión incorrecta.
Solución:
- Revisa los logs del contenedor:
- Comprueba que el archivo
.envexiste junto aldocker-compose.ymly define todas las variables requeridas (como mínimoSQL_PASSWORDyFRONTEND_PORT/BACKEND_PORT). - Asegúrate de que los puertos no están en uso por otro proceso: