Despliegue
AccessPlatform se despliega como aplicación ASP.NET Core en IIS. El despliegue principal corresponde a AccessPlatform.Web; la API AccessPlatform.Identity.Api puede publicarse adicionalmente si se requieren integraciones REST o Swagger separado.
Cloudflare -> IIS -> AccessPlatform.Web -> SQL Server -> SMTP externoPrerrequisitos
Sección titulada «Prerrequisitos»- Windows Server 2022/2025 o Windows 11 Pro para demo.
- IIS habilitado.
- ASP.NET Core Hosting Bundle compatible con .NET 10.
- SQL Server Express/Standard accesible.
- Certificado HTTPS.
- SMTP real o sandbox.
- Permisos para crear Application Pool y publicar carpeta.
Publicar Web
Sección titulada «Publicar Web»Desde la raíz del repositorio:
dotnet publish src/AccessPlatform.Web -c Release -o .\publishCopiar la carpeta publicada a:
C:\inetpub\AccessPlatform\publish| Campo | Valor recomendado |
|---|---|
| Site name | AccessPlatform |
| Application Pool | AccessPlatformPool |
| .NET CLR Version | No Managed Code |
| Managed Pipeline | Integrated |
| Physical Path | C:\inetpub\AccessPlatform\publish |
| Binding | HTTPS obligatorio fuera de local |
Permisos NTFS
Sección titulada «Permisos NTFS»Dar permisos al usuario:
IIS AppPool\AccessPlatformPoolSobre:
C:\inetpub\AccessPlatformPermisos sugeridos:
Read & ExecuteModify si la aplicación escribirá logs/uploadsVariables de entorno críticas
Sección titulada «Variables de entorno críticas»setx ASPNETCORE_ENVIRONMENT "Production"setx ConnectionStrings__DefaultConnection "Server=SQLSERVER;Database=AccessPlatformDb;User Id=appuser;Password=PASSWORD;TrustServerCertificate=True;MultipleActiveResultSets=True;"setx IdentitySeed__SuperUser__Password "PASSWORD_SUPER_SEGURA"setx Turnstile__Enabled "true"setx Turnstile__SiteKey "SITE_KEY"setx Turnstile__SecretKey "SECRET_KEY"setx Email__Enabled "true"setx Email__SmtpHost "smtp.office365.com"setx Email__SmtpPort "587"setx Email__Username "no-reply@tuempresa.com"setx Email__Password "PASSWORD"setx Email__UseSsl "true"Reiniciar IIS:
iisresetBase de datos
Sección titulada «Base de datos»Aplicar migraciones contra SQL Server real:
dotnet ef database update --project src/AccessPlatform.Identity.Infrastructure --startup-project src/AccessPlatform.Web --context ApplicationDbContextHTTPS y Cloudflare
Sección titulada «HTTPS y Cloudflare»En ambientes reales:
- configurar certificado en IIS;
- abrir puertos 80/443;
- activar proxy/WAF de Cloudflare si aplica;
- activar Turnstile;
- usar SMTP real;
- no dejar
stdoutLogEnabled=truede forma permanente.
Checklist post-despliegue
Sección titulada «Checklist post-despliegue»| Validación | Resultado esperado |
|---|---|
| Sitio responde por HTTPS | Portal carga correctamente. |
| Login funciona | Cookie de sesión creada. |
| 2FA funciona | Google Authenticator valida TOTP. |
| Turnstile activo | Token validado en servidor. |
| SQL Server conecta | Usuarios/roles/auditoría se persisten. |
| SMTP real activo | Alertas de login se envían. |
| Permisos funcionan | Menú y páginas respetan claims permission. |
| Logs disponibles | IIS/Event Viewer/aplicación accesibles. |
Diagnóstico rápido
Sección titulada «Diagnóstico rápido»| Síntoma | Causa probable | Acción |
|---|---|---|
| Error 500.30 | App no inicia | Revisar Hosting Bundle, Event Viewer y variables. |
| Login falla por SQL | Connection string o permisos | Validar SQL Server, usuario y migraciones. |
| 2FA obliga siempre | Configuración RequireTwoFactor... | Revisar ClientIdentity. |
| Email no llega | SMTP o firewall | Revisar Email:*, puerto y logs. |
| Turnstile falla | SecretKey o SiteKey inválido | Revisar variables y dominio configurado. |