En este post veremos paso a paso cómo publicar y desplegar una Minimal API de .NET en Internet Information Services (IIS).
📌 Requisitos previos
Antes de iniciar asegúrate de tener lo siguiente:
- .NET 6 o superior instalado en el servidor.
- IIS instalado y configurado en Windows.
- Hosting Bundle de ASP.NET Core instalado en el servidor.
👉 Puedes descargarlo desde Microsoft .NET Hosting Bundle.
1. Publicar el proyecto en Visual Studio
- Abre tu proyecto de Minimal API en Visual Studio.
- Haz clic derecho en el proyecto → Publicar.
- Selecciona el destino Carpeta.
- Configura la carpeta de salida (ejemplo:
C:\publish\MinimalAPI). - Haz clic en Finalizar y luego en Publicar.
Esto generará los archivos necesarios para desplegar la aplicación.
2. Configurar el sitio en IIS usando el Default Web Site
En lugar de crear un nuevo sitio y configurar un puerto, utilizaremos el sitio predeterminado (Default Web Site) para que la URL sea más limpia (http://localhost o tu dominio).
- Abre IIS Manager (
inetmgr). - En el panel izquierdo, selecciona Default Web Site.
- Haz clic derecho → Convert to Application.
- Configura lo siguiente:
- Alias: puedes dejarlo vacío o asignar un nombre que forme parte de la URL (ejemplo:
api→http://localhost/api). - Physical path: selecciona la carpeta publicada (
C:\publish\MinimalAPI).
- Alias: puedes dejarlo vacío o asignar un nombre que forme parte de la URL (ejemplo:
- Haz clic en OK.
De esta manera, la aplicación se desplegará en el puerto 80 y no necesitarás configurar un puerto específico en el navegador.
4. Habilitar HTTPS con certificado SSL
Si tu servidor ya tiene un certificado SSL configurado para la salida a Internet, puedes habilitar HTTPS en tu aplicación de la siguiente manera:
- Abre IIS Manager (
inetmgr). - Selecciona el sitio donde desplegaste la API (por ejemplo, Default Web Site).
- En el panel derecho, haz clic en Bindings….
- Haz clic en Add… para agregar un nuevo binding o selecciona el existente para HTTPS y haz clic en Edit….
- Configura lo siguiente:
- Type:
https - IP address:
All Unassigned(o la IP específica de tu servidor) - Port:
443 - SSL certificate: selecciona el certificado que ya esté configurado para la salida a Internet.
- Type:
- Haz clic en OK para guardar.
Ahora tu Minimal API estará accesible vía HTTPS con una URL limpia, por ejemplo:
https://midominio.com o https://ip-del-servidor.
5. Configurar el Application Pool
- Ve a Application Pools en IIS.
- Localiza el pool creado para tu aplicación.
- Asegúrate de que:
- .NET CLR Version esté en No Managed Code.
- Managed pipeline mode esté en Integrated.
- Reinicia el pool si es necesario.
6. Permisos de carpeta
Dale permisos a la carpeta de publicación para que IIS pueda acceder:
- Haz clic derecho en la carpeta publicada → Propiedades.
- Ve a Seguridad.
- Agrega el usuario IIS_IUSRS con permisos de Lectura y Ejecución.
7. Verificar la aplicación
- Abre el navegador.
- Accede a tu API con la URL configurada (ejemplo:
http://localhost:5000/swagger). - Si configuraste correctamente, deberías ver tu Swagger UI o la respuesta de la API.
🔧 Posibles problemas
-
HTTP Error 500.30 – ANCM In-Process Start Failure
👉 Revisa que tengas instalado el Hosting Bundle correcto. -
Permisos denegados
👉 Verifica permisos de la carpeta para IIS_IUSRS. -
Swagger no carga
👉 Asegúrate de habilitarlo enProgram.csconapp.UseSwagger()yapp.UseSwaggerUI()en modo producción si lo necesitas.
✅ Conclusión
Desplegar una Minimal API de .NET en IIS es un proceso sencillo si se siguen los pasos correctos: publicar el proyecto, configurar IIS, ajustar el Application Pool, y asignar los permisos necesarios.
De esta manera, puedes tener tu API lista para usarse en producción en un servidor Windows.