Ir al contenido

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 externo
  • 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.

Desde la raíz del repositorio:

Ventana de terminal
dotnet publish src/AccessPlatform.Web -c Release -o .\publish

Copiar la carpeta publicada a:

C:\inetpub\AccessPlatform\publish
CampoValor recomendado
Site nameAccessPlatform
Application PoolAccessPlatformPool
.NET CLR VersionNo Managed Code
Managed PipelineIntegrated
Physical PathC:\inetpub\AccessPlatform\publish
BindingHTTPS obligatorio fuera de local

Dar permisos al usuario:

IIS AppPool\AccessPlatformPool

Sobre:

C:\inetpub\AccessPlatform

Permisos sugeridos:

Read & Execute
Modify si la aplicación escribirá logs/uploads
Ventana de terminal
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:

Ventana de terminal
iisreset

Aplicar migraciones contra SQL Server real:

Ventana de terminal
dotnet ef database update --project src/AccessPlatform.Identity.Infrastructure --startup-project src/AccessPlatform.Web --context ApplicationDbContext

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=true de forma permanente.
ValidaciónResultado esperado
Sitio responde por HTTPSPortal carga correctamente.
Login funcionaCookie de sesión creada.
2FA funcionaGoogle Authenticator valida TOTP.
Turnstile activoToken validado en servidor.
SQL Server conectaUsuarios/roles/auditoría se persisten.
SMTP real activoAlertas de login se envían.
Permisos funcionanMenú y páginas respetan claims permission.
Logs disponiblesIIS/Event Viewer/aplicación accesibles.
SíntomaCausa probableAcción
Error 500.30App no iniciaRevisar Hosting Bundle, Event Viewer y variables.
Login falla por SQLConnection string o permisosValidar SQL Server, usuario y migraciones.
2FA obliga siempreConfiguración RequireTwoFactor...Revisar ClientIdentity.
Email no llegaSMTP o firewallRevisar Email:*, puerto y logs.
Turnstile fallaSecretKey o SiteKey inválidoRevisar variables y dominio configurado.