问题描述
我在 Azure 应用服务应用程序 (.NET 4.7.1) 中使用 IdentityDbContext
,并使用 Unity 将其注入控制器和其他类构造函数。
这是它在 Unity 中的配置方式
container.RegisterType<DbContext,ApplicationDbContext>(new Unity.AspNet.Mvc.PerRequestLifetimeManager());
container.RegisterType<IdentityDbContext<ApplicationUser>>(new Unity.AspNet.Mvc.PerRequestLifetimeManager());
container.RegisterType(typeof(IUserStore<ApplicationUser>),typeof(UserStore<ApplicationUser>),new Unity.AspNet.Mvc.PerRequestLifetimeManager());
container.RegisterType<ApplicationUserManager>(new Unity.AspNet.Mvc.PerRequestLifetimeManager());
所以我认为我做对了,我希望为每个访问我的 API 的请求创建一个新实例。
ApplicationUserManager
被注入到一个基类控制器中,许多其他控制器继承自该基类控制器。
据我所知,Entity Framework 有一个连接池,可以选择重用或打开连接,所以这应该不是问题。
问题来了。在 Azure 中,我突然开始注意到出站连接是如何耗尽的,我不得不升级到 B2
服务计划,这是我以前从未需要做的事情。
这是门户网站告诉我的:
用红色划掉的 IP 是 sql 身份数据库的连接。对于这种情况,这是正常的连接数量吗?
我的 Unity 配置是否有问题,是否使实体框架建立了比应有的更多连接?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)