为什么MembershipProvider.GetUser会消耗如此多的资源以确保它使用EF db上下文?

时间:2015-10-23 01:50:59

标签: vb.net entity-framework membership-provider membership

在我们的网络应用程序中,我们观察到以下内容:

enter image description here

GetUser / CreatMembershipEntities / ExplicitLoadFromAssembly似乎非常昂贵。

还注意到正在调用CreateEntityConnection - EntityFramework?

我并不完全相信EF已正确配置此应用程序。如果是,并且正在使用中,我不会期望看到每个呼叫都启动新的连接 - 是/否?

是一种简化此操作以避免某些主要代码重构的方法吗?

使用System.Web.Security.Membership.GetUser()似乎是个大问题。而不是使用MembershipProvider来创建用户,而是只执行执行相同操作的sproc。

就我而言,我发现以下代码非常荒谬 - 为每个用户创建一个新的调用,直到可以生成一个唯一的代码:

For i As Integer = 1 To Integer.MaxValue
    'Generate unique username
    If System.Web.Security.Membership.GetUser(userName & i) Is Nothing Then
        'Increment value until no duplicate username found
        userName = userName & i
        Exit For
    End If
Next

- 更新 -

我稍微修改了这个问题......

我们最多可以运行20个用户,然后IIS服务器就会启动。 GetUser()方法每次都创建一个全新的连接吗?它看起来像是基于结果。如何确保此GetUser()事实上正在使用db上下文,而不是自己创建连接?

0 个答案:

没有答案