Skip to content

Latest commit

 

History

History
292 lines (202 loc) · 6.3 KB

File metadata and controls

292 lines (202 loc) · 6.3 KB

NexusCad API - Scripts de Gestión del Servicio Windows

Esta carpeta contiene scripts PowerShell para gestionar la API de NexusCad como Servicio Windows.

📋 Contenido

Script Descripción Requiere Admin
install-api-service.ps1 Instala la API como servicio Windows ✅ Sí
start-api-service.ps1 Inicia el servicio No
stop-api-service.ps1 Detiene el servicio No
update-api-service.ps1 Actualiza el servicio con últimos cambios ✅ Sí
uninstall-api-service.ps1 Desinstala completamente el servicio ✅ Sí

🎯 ¿Cuándo usar el servicio Windows?

Instalar el servicio si:

  • Estás en entorno de producción / usuario final
  • Quieres que la API esté siempre disponible
  • El Admin necesita conectarse sin iniciar procesos manualmente

NO instalar el servicio si:

  • Estás desarrollando / debuggeando
  • Necesitas hacer cambios frecuentes en el código
  • Quieres ver la salida de consola en tiempo real

🚀 Uso típico

Primera instalación (Producción)

# Ejecutar PowerShell como Administrador
.\dev-scripts\install-api-service.ps1

Esto:

  1. Publica la API en C:\NexusCad\Api
  2. Crea el servicio Windows NexusCadApi
  3. Lo configura para inicio automático
  4. Lo arranca inmediatamente

Desarrollo normal (SIN servicio instalado)

# Opción 1: Visual Studio
# - Configurar Multiple Startup Projects (Api + Admin)
# - Presionar F5

# Opción 2: Terminales separadas
dotnet run --project src/NexusCad.Api       # Terminal 1
dotnet run --project src/NexusCad.Admin     # Terminal 2

Desarrollo con servicio YA instalado

⚠️ IMPORTANTE: Si ya instalaste el servicio, debes detenerlo antes de compilar:

# 1. Detener servicio
.\dev-scripts\stop-api-service.ps1

# 2. Ahora puedes trabajar normalmente
dotnet build
dotnet run --project src/NexusCad.Api

# 3. Al terminar, actualizar el servicio
.\dev-scripts\update-api-service.ps1

¿Por qué? El servicio mantiene los archivos DLL bloqueados, impidiendo la compilación.


📖 Descripción de cada script

install-api-service.ps1

Instalación inicial del servicio.

Uso:

# Como Administrador
.\dev-scripts\install-api-service.ps1

Lo que hace:

  • ✅ Publica la API en modo Release
  • ✅ Crea el servicio con sc.exe
  • ✅ Lo configura para inicio automático
  • ✅ Lo arranca inmediatamente

Resultado:

  • Servicio: NexusCadApi
  • Path: C:\NexusCad\Api\NexusCad.Api.exe
  • URL: http://localhost:5140
  • Swagger: http://localhost:5140/swagger

stop-api-service.ps1

Detiene el servicio para permitir desarrollo.

Uso:

.\dev-scripts\stop-api-service.ps1

Cuándo usarlo:

  • Antes de dotnet build o dotnet run
  • Antes de hacer cambios en el código de la API
  • Cuando necesitas debuggear en Visual Studio

No requiere permisos de Administrador.


start-api-service.ps1

Arranca el servicio manualmente.

Uso:

.\dev-scripts\start-api-service.ps1

Cuándo usarlo:

  • Después de reiniciar el sistema (aunque arranca automáticamente)
  • Después de detenerlo manualmente para desarrollo

No requiere permisos de Administrador.


update-api-service.ps1

Actualiza el servicio con los últimos cambios del código.

Uso:

# Como Administrador
.\dev-scripts\update-api-service.ps1

Lo que hace:

  1. ⏸️ Detiene el servicio
  2. 📦 Publica la última versión de la API
  3. 🚀 Reinicia el servicio

Cuándo usarlo:

  • Después de hacer cambios en la API
  • Después de un git pull con actualizaciones
  • Antes de entregar al usuario final

uninstall-api-service.ps1

Elimina completamente el servicio.

Uso:

# Como Administrador
.\dev-scripts\uninstall-api-service.ps1

Lo que hace:

  1. 🛑 Detiene el servicio
  2. 🗑️ Elimina el servicio de Windows
  3. ❓ Pregunta si deseas borrar los archivos en C:\NexusCad\Api

Cuándo usarlo:

  • Cuando terminas de desarrollar y no necesitas el servicio
  • Para limpiar la instalación completa
  • Antes de reinstalar desde cero

🔍 Verificar estado del servicio

# Comprobar si está instalado y su estado
Get-Service NexusCadApi

# Detalles completos
sc.exe query NexusCadApi

# Ver logs (si Serilog está configurado para Event Viewer)
Get-EventLog -LogName Application -Source NexusCadApi -Newest 20

⚠️ Problemas comunes

"The process cannot access the file..."

Causa: El servicio está corriendo y bloquea los DLLs.

Solución:

.\dev-scripts\stop-api-service.ps1
dotnet build

Servicio no inicia después de actualizar

Causa: Error en el código o configuración.

Diagnóstico:

# Ver logs del Event Viewer
Get-EventLog -LogName Application -Newest 10

# Intentar ejecutar manualmente para ver el error
C:\NexusCad\Api\NexusCad.Api.exe

Servicio no se detiene

Causa: Proceso colgado.

Solución:

# Ver el PID del proceso
sc.exe query NexusCadApi

# Forzar cierre
Stop-Process -Name "NexusCad.Api" -Force

# Reintentar eliminar el servicio
sc.exe delete NexusCadApi

🎓 Flujo de trabajo recomendado

Durante desarrollo activo

# NO instalar el servicio
# Usar Visual Studio F5 o dotnet run

Antes de entregar a usuario final

# 1. Comprobar que todo compila
dotnet build -c Release

# 2. Instalar el servicio
.\dev-scripts\install-api-service.ps1

# 3. Verificar
Start-Process "http://localhost:5140/swagger"

Después de hacer cambios (con servicio instalado)

# 1. Detener
.\dev-scripts\stop-api-service.ps1

# 2. Hacer cambios y compilar
# ... editar código ...
dotnet build

# 3. Actualizar servicio
.\dev-scripts\update-api-service.ps1

📚 Referencias


Última actualización: Fase 1 - Sistema de servicio Windows documentado