迁移ASP.Net成员资格

时间:2012-06-08 10:06:39

标签: asp.net sql ssms sql-server-2008

我在复制ASP.Net Membership表时遇到问题。因为我只想要架构,所以我生成脚本而不复制数据。

当我访问新网站时,显示

  

'System.Web.Security.SqlMembershipProvider'需要一个数据库   模式与模式版本'1'兼容。但是,目前   数据库架构与此版本不兼容。你可能需要   使用aspnet_regsql.exe安装兼容的模式(可用   在框架安装目录中),或将提供程序升级到   较新的版本。

这是我已经完成的一步一步,我无法让它发挥作用。

  1. 从源服务器的SSMS,右键单击数据库。
  2. 任务 - >生成脚本
  3. 在选择脚本选项中,我点击了下一步。
  4. 在选择对象类型中,我选择了全部,然后单击下一步。
  5. 在选择数据库角色中,我选择了全部。
  6. 在选择架构中,我选择了全部。
  7. 在选择存储过程中,选择标题,全部选中。
  8. 选择所有视图。
  9. 脚本到新查询窗口。
  10. 在目标服务器的SSMS中,我运行脚本。
  11. 创建的表格为空。
  12. 我运行了aspnet_regsql.exe,并填充了aspnet_SchemaVersions。
  13. 但是,错误仍然存​​在......我的想法已经用完了。

1 个答案:

答案 0 :(得分:2)

您需要aspnet_SchemaVersion表中的一些数据。查看您正在使用的数据库表中的信息,并在脚本末尾添加一个插入内容,以将该数据添加到aspnet_SchemaVersion表中。我不记得我脑子里有什么东西,但它的相当简单。

在这里你应该这样做我不认为版本号已经改变,但你应该检查你现有的数据库。

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘common’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘health monitoring’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘membership’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘personalization’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘profile’, 1, 1) 

INSERT INTO aspnet_SchemaVersions (Feature, CompatibleSchemaVersion, IsCurrentVersion)
VALUES(‘role manager’, 1, 1)