出于某种奇怪的原因,aspnet_regsql
命令只生成Membership数据库中的一些而不是所有表。例如,它不会生成dbo.Users,dbo.Roles,dbo.Profile等。实际上它只生成了17个表中的11个。我尝试使用不同的开关从命令提示符运行它。另外,我也以管理员的身份运行它。没有更好的。有谁知道我在这里失踪了什么?
这是ASP.NET 4.0 + SQL Server 2008 R2 Express。
答案 0 :(得分:0)
右。经过漫长的一天努力,想出了这一点。如果有其他人需要,请在此处摘要:
ASP.NET 4.0包含一组新的提供程序,这些提供程序驻留在不同的名称空间System.Web.Providers.DefaultXProvider
中,其中X可以是Membership,Role,Profile或SessionState。如果您的目标是ASP.NET 4.0或更高版本,则应该在web.config中使用它们。您可以通过搜索 Microsoft.AspNet.Providers.Core 包来通过NuGet下载这些提供程序。
新提供商不使用" aspnet _"带有表名的前缀。那么以前版本中曾经的 dbo.aspnet_Roles 现在是 dbo.Roles ,依此类推。新提供商仅使用6个表。我通过开发机器上的旧提供程序和新提供程序错误地创建了表,这就是为什么我认为它缺少生产服务器上的某些表。
您无需在数据库上显式运行aspnet_regsql
。第一次通过成员资格调用(例如GetUser()
)访问数据库时,提供程序将自动为您生成所需的表(如果它们尚不存在)。
希望这可以帮助有人在路上。