首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Owin.AppBuilderExtensions中的内存泄漏

Owin.AppBuilderExtensions中的内存泄漏
EN

Stack Overflow用户
提问于 2014-06-24 13:22:07
回答 3查看 3.4K关注 0票数 20

我在Web应用程序中使用OWIN + Microsoft.AspNet.Identity.Owin (v.2.0.0.0)。我按照广泛推荐的方式为每个web请求注册UserManager/DbContext:

app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

但这两个都没有处理过。我看了一眼reflector,它似乎是扩展方法中的一个bug:

public static IAppBuilder CreatePerOwinContext<T>(this IAppBuilder app, Func<IdentityFactoryOptions<T>, IOwinContext, T> createCallback) where T: class, IDisposable
{
    if (app == null)
    {
        throw new ArgumentNullException("app");
    }
    if (createCallback == null)
    {
        throw new ArgumentNullException("createCallback");
    }
    object[] args = new object[1];
    IdentityFactoryOptions<T> options = new IdentityFactoryOptions<T> {
        DataProtectionProvider = app.GetDataProtectionProvider()
    };
    IdentityFactoryProvider<T> provider = new IdentityFactoryProvider<T> {
        OnCreate = createCallback
    };
    options.Provider = provider;
    args[0] = options;
    app.Use(typeof(IdentityFactoryMiddleware<T, IdentityFactoryOptions<T>>), args);
    return app;
}

IdentityFactoryProvider有两个回调- create和dispose,但dispose回调没有在这里注册。我也用内存分析器确认了我的怀疑。

我在codeplex/github上没有看到Owin (实际上我以为它是开源的),所以我不知道在哪里问我的问题:其他人能确认这是内存泄漏吗?我不太确定,因为谷歌对此只字不提,如果这是一个bug,我希望它应该在任何地方都被讨论。

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

https://stackoverflow.com/questions/24378856

复制
相关文章

相似问题

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