2

不确定我是否做错了什么,或者我是否应该放弃 ASP.NET SQL Membership 提供程序,也许可以推出我们自己的。我正在努力通过减少数据库调用次数来优化我们的 Web 应用程序/服务性能。为此,我连接了 Entity Framework Profiler (EFProf),这很棒。

看起来从对 Membership.ValidateUser(username, password) 的一次调用中,我得到了对数据库的 8 次调用。4 次选择,4 次更新。似乎完全相同的选择和更新序列连续重复两次。它根据用户名选择用户数据,根据 userId 再次选择,然后更新上次登录和上次活动日期(最后两个作为两个单独的更新语句发送)。

当我们添加我们在 Azure 上运行的事实时,这会变得更大一些,因此数据库不是位于同一台机器上或位于 Web 服务器旁边,因此每个 db 调用平均需要 3-10 毫秒.

对此有什么想法吗?以前有人注意到这种行为吗?似乎这可能只是 MSFT 需要优化的东西,但我想无论如何我都会问。

谢谢。

4

1 回答 1

1

Azure 不支持 SqlMembershipProvider 和 SqlRoleProvider,建议迁移到通用提供程序。我不确定这是否是它如此健谈的原因,但新的提供商内置了 Azure 支持。

于 2012-08-20T15:25:50.773 回答