将ASP.NET成员资格数据库迁移到SQL Azure

时间:2012-04-13 12:25:19

标签: asp.net sql-server-2008 azure azure-sql-database

我正在尝试将数据库从SQL Server 2008迁移到SQL Azure。我尝试迁移的数据库包括ASP.NET成员资格数据库(http://www.asp.net/web-forms/tutorials/moving-to-aspnet-20/membership)。当我在SQL Server 2008数据库中运行它时,此数据库工作正常。但是,当我尝试针对SQL Azure对用户进行身份验证时,收到错误消息:

“此版本的SQL Server不支持没有聚簇索引的表。请创建聚簇索引并重试。”

但是,我不知道该怎么做。当我尝试更新aspnet_Applications表上的索引时,我收到外键问题。我尝试将非聚集索引迁移到聚簇索引时使用以下内容:

ALTER TABLE aspnet_Applications
DROP CONSTRAINT PK__aspnet_A__SOMEID

ALTER TABLE aspnet_Applications
ADD CONSTRAINT PK__aspnet_A__SOMEID PRIMARY KEY CLUSTERED(ApplicationId)

有人可以帮我解决这个问题吗?谢谢!

3 个答案:

答案 0 :(得分:5)

我遇到了ASP.NET成员资格提供程序表(非聚集索引)的问题,并且缺少存储过程"WITH (NOLOCK)"等上的aspnet_Membership_GetNumberOfUsersOnline语句。

此处的迁移工具修复了问题并将数据库导出到Azure。

<强> http://sqlazuremw.codeplex.com/

这是一个很好的向导,可以连接到现有的SQL Server并将选定的数据库迁移到Azure。

答案 1 :(得分:2)

如果可以,请尝试使用ASP.NET Universal Providers For SqlExpress 1.1(我希望他们更改名称,因为它有点用词不当)。这是在SQL Azure和独立SQL Server中启用SQL成员资格,角色和会话提供程序的官方支持方法。

以下是其他几个参考链接:

Scott Hanselman - Introducing System.Web.Providers

SQL Azure Team Blog - Using SQL Azure for Session State

答案 2 :(得分:1)

SQL Azure与SQL Server不同,因为并非所有功能都受支持。有一个特殊的SQL Azure成员脚本来创建数据库。

见这里:http://support.microsoft.com/kb/2006191/de

我希望这会有所帮助。

问候。