Entendiendo IServiceScopeFactory.CreateScope() en .NET y cuándo usarlo

Descubre cómo resolver servicios scoped fuera de una petición HTTP en ASP.NET Core con IServiceScopeFactory.CreateScope, evitando problemas de ciclo de vida y liberando recursos.

29 sept 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Cuando trabajas con inyección de dependencias en ASP.NET Core, es frecuente encontrarse con una pregunta importante: cómo resolver un servicio con tiempo de vida scoped fuera del flujo normal de una petición HTTP. La respuesta práctica es usar IServiceScopeFactory.CreateScope para crear manualmente un alcance de DI y resolver servicios scoped de forma segura.

Los servicios en ASP.NET Core tienen tres tiempos de vida principales: Singleton creado una sola vez para toda la aplicación, Scoped creado una vez por cada petición HTTP y Transient creado cada vez que se solicita. En controladores y middleware no suele ser un problema porque el framework crea automáticamente un scope por cada petición. El reto aparece cuando estás fuera de una petición, por ejemplo en un servicio en segundo plano como BackgroundService o IHostedService, en un job programado o en una aplicación de consola usando el Generic Host.

No debes inyectar un servicio scoped directamente en un singleton. Si intentas inyectar ApplicationDbContext u otro servicio scoped dentro de un servicio singleton, el contenedor DI no podrá gestionar correctamente su ciclo de vida y provocará errores o fugas de recursos.

IServiceScopeFactory.CreateScope permite crear un alcance de DI manualmente. Dentro de ese scope puedes resolver servicios scoped y el contenedor se encarga de su eliminación al cerrar el alcance. En la práctica inyectas IServiceScopeFactory en tu BackgroundService, y en cada iteración creas un scope, llamas a scope.ServiceProvider.GetRequiredService para obtener el ApplicationDbContext u otros servicios, realizas el trabajo y dejas que el using o la disposición del scope libere los recursos.

Una forma conceptual de usarlo es: inyectar IServiceScopeFactory en el constructor del servicio en segundo plano, en el bucle de trabajo hacer using var scope = scopeFactory.CreateScope sujeto a la token de cancelación, resolver el servicio scoped desde scope.ServiceProvider indicando el tipo necesario, ejecutar la lógica y permitir que al salir del using el scope y los servicios resueltos se eliminen correctamente.

Buenas prácticas adicionales incluyen: crear un scope por unidad de trabajo (no por cada operación pequeña), evitar resolver muchos servicios en cascada sin necesidad y preferir patrones de mediador o colas para dividir trabajo pesado. En versiones más recientes tambin puedes considerar CreateAsyncScope para escenarios async con disposición asíncrona.

En Q2BSTUDIO somos especialistas en desarrollar soluciones empresariales escalables y robustas. Si necesitas arquitecturas que integren servicios en segundo plano, accesso a bases de datos con contextos gestionados correctamente o aplicaciones distribuídas, podemos ayudarte con aplicaciones a medida y software a medida optimizadas para rendimiento y mantenibilidad. Además ofrecemos apoyo en migraciones y despliegues en la nube con soluciones seguras en inteligencia artificial e ia para empresas que mejoran procesos y automatizan decisiones.

Nuestros servicios abarcan inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios de inteligencia de negocio, agentes IA y Power BI. Si te interesa garantizar la correcta gestión del ciclo de vida de tus dependencias en aplicaciones .NET, al mismo tiempo que mejoras tu plataforma con soluciones de IA o despliegues seguros en la nube, en Q2BSTUDIO combinamos experiencia técnica y prácticas recomendadas para conseguirlo.

En resumen, cuando necesites resolver servicios scoped fuera del pipeline HTTP utiliza IServiceScopeFactory.CreateScope, resuelve servicios desde scope.ServiceProvider y permite que el alcance gestione la disposición. Esto evita problemas de ciclo de vida, asegura la liberación de recursos y es la forma recomendada de integrar DbContext y otros servicios scoped en servicios en segundo plano, jobs programados y aplicaciones hosteadas.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat