ASP.NET Universal Providers允许默认的sql提供程序不支持什么?

时间:2011-08-04 11:35:33

标签: asp.net-membership azure-sql-database sqlmembershipprovider sqlprofileprovider sqlroleprovider

在ASP.NET Universal提供程序NuGet package的自述文件中是这个引用

  

ASP.NET中通过版本4提供的SqlMembershipProvider,SqlRoleProvider,SqlProfileProvider类仅支持Microsoft SQL Server和Microsoft SQL Server Express。它们不支持较新的产品,如Microsoft SQL Azure和Microsoft SQL Server Compact。

但是,当我为Sql Azure http://support.microsoft.com/kb/2006191运行自定义aspnet_regsql脚本,然后将我的web.config指向SQL Azure数据库时,ASP.NET成员身份似乎正常工作。

任何人都可以告诉我,通用提供商启用的SQL Azure究竟不起​​作用吗?

2 个答案:

答案 0 :(得分:3)

据我所知,主要区别在于当您连接到Sql Azure时,您需要实现retry logic。发生连接错误时,原始提供程序不会重试,这将在SQL Azure中不时发生。

此外,原始提供程序不会引发包含完整SQL错误代码的异常,因此如果您的数据库受到限制,您将无法知道正在应用哪个限制规则。至少这是SQL Azure支持团队告诉我的内容 - 由于这个原因,我目前正在升级。

注意事项:Universal Providers似乎使用与原始提供程序不同的数据库架构,因此您需要迁移成员资格数据。如果您正在开始一个新项目,那么在您与真实用户合作之前更改这些提供商会更容易!

答案 1 :(得分:0)

通用提供程序使您能够在sqlazure上使用asp.net成员资格系统,并使实现sql不可知。您可以使用通用提供程序获取相同的应用程序并将数据源更改为sql server / sqlexpress / sqlce / localdb等