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

Jav*_*per 6 asp.net azure sql-server-2008 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)
Run Code Online (Sandbox Code Playgroud)

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

AH.*_*AH. 5

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

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

http://sqlazuremw.codeplex.com/

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


Jon*_*ire 2

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

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

Scott Hanselman - System.Web.Providers 简介

SQL Azure 团队博客 - 使用 SQL Azure 获取会话状态