首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一切都是单例的--请求没有创建新的作用域(ASP.NET Core2.x在.NET框架内)

一切都是单例的--请求没有创建新的作用域(ASP.NET Core2.x在.NET框架内)
EN

Stack Overflow用户
提问于 2022-04-02 01:21:24
回答 1查看 239关注 0票数 1

我们正在将一个广泛的webforms应用程序迁移到.NET 5+/.NET核心世界。我们已经将大部分后端库代码移到了.NET标准2.0。

作为逐步转移功能的临时步骤,我们设置了运行在ASP.NET框架webforms应用程序中的.NET Core2.2(在.NET标准2.0上运行的最后一个版本)项目。除了我们遇到的一个致命缺陷之外,这个方法运行得很好:--所有的东西都是相同的范围,因此作用域对象被当作单子来对待。在其他问题中,这意味着应用程序锁定到它所看到的第一个登录用户。不过,瞬变的工作原理是正确的。

我正在使用这个图书馆正确地在应用程序的ASP.NET核心部分进行路由--没有它,一切都会返回到404。但我不确定是否该归咎于图书馆,或者是其他一些奇怪的网络形式。

我应该在ASP.NET Core2.2管道中查找每个IServiceProvider请求应该在哪里创建自己的IServiceProvider作用域来修复这个问题或手动修复?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-03 09:37:38

我正在寻找的区域是RequestServicesContainerMiddleware,它为每个请求生成一个新的范围。有一个检查,看看是否一个已设置。我用的是预先定义这一点的图书馆。

现在的解决方案/解决方案是,我添加了一个RequestServicesContainerMiddleware的简化版本,它总是创建一个新的服务范围。

(关于如何修改DI系统的这个不相关的答案帮助很大。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71714175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档