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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.