【问题标题】:aspnet_regsql not generating all tablesaspnet_regsql 未生成所有表
【发布时间】:2014-05-14 14:36:33
【问题描述】:

由于某些奇怪的原因,aspnet_regsql 命令只生成成员数据库中的部分表,而不是所有表。例如,它不生成 dbo.Users、dbo.Roles、dbo.Profile 等。实际上它只生成 17 个表中的 11 个。我尝试使用不同的开关从命令提示符运行它。另外我也以管理员身份运行它。没有更好的。有谁知道我在这里错过了什么?

这是 ASP.NET 4.0 + SQL Server 2008 R2 Express。

【问题讨论】:

  • 你从哪个目录运行它?
  • @TrevorBrooks: C:\Windows\Microsoft.NET\Framework\v4.0.30319

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


【解决方案1】:

没错。经过一天的努力,终于明白了这一点。如果其他人需要,这是摘要:

  1. ASP.NET 4.0 包括一组新的提供程序,它们位于不同的命名空间 System.Web.Providers.DefaultXProvider,其中 X 可以是成员资格、角色、配置文件或会话状态。如果你的目标是 ASP.NET 4.0 或更高版本,你应该在你的 web.config 中真正使用这些。您可以通过 NuGet 搜索 Microsoft.AspNet.Providers.Core 包下载这些提供程序。

  2. 新提供程序不使用“aspnet_”前缀与表名。所以以前版本中的 dbo.aspnet_Roles 现在是 dbo.Roles 等等。新提供者仅使用 6 个表。我通过我的开发机器上的新旧提供程序错误地创建了表,这就是为什么我认为它在生产服务器上丢失了一些表。

  3. 您无需在数据库上显式运行 aspnet_regsql。当您第一次通过 Membership 调用(例如 GetUser())访问您的数据库时,如果所需的表尚不存在,提供程序将自动为您生成它们。

希望这对未来的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多