【问题标题】:Local works. Azure give error: Invalid object name 'dbo.AspNetUsers'. Why?本地作品。 Azure 给出错误:无效的对象名称“dbo.AspNetUsers”。为什么?
【发布时间】:2017-01-16 02:12:48
【问题描述】:

我在尝试注册用户等时收到此错误:

对象名称“dbo.AspNetUsers”无效。

这给了我 2 个问题:
1) 我该如何解决这个问题
2)为什么我有这个问题?! ...有一些类似的问题显示了解决方法(黑客?),但我似乎没有解释 为什么它需要做

在 Azure 上运行我的网站时出现错误。如果我在我的机器上本地运行(即直接从 VS IIS 调试)它运行正确。本地运行的网站仍在访问相同的 Azure SQL 数据库,没有问题并且使用相同的连接字符串:

<add name="DefaultConnection" connectionString="data source=tcp:mysqlserver.database.windows.net,1433;initial catalog=mysqldb;user id=mysqluser;password=mypass;multipleactiveresultsets=True;connect timeout=30;encrypt=True;trustservercertificate=False;application name=EntityFramework" providerName="System.Data.SqlClient" />

它可以正常访问数据库中的其他表。

我已尝试将用户 my 添加到数据库 db_owner 角色中。

我已经尝试使用我的连接字符串中的 sql-user,th 中的数据库名称:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);

    // Also tried this
    //modelBuilder.HasDefaultSchema("mysqluser");

    string schema = "mysqluser";
    modelBuilder.Entity<IdentityRole>().ToTable("AspNetRoles", schema);
    modelBuilder.Entity<IdentityUserClaim>().ToTable("AspNetUserClaims", schema);
    modelBuilder.Entity<IdentityUserLogin>().ToTable("AspNetUserLogins", schema);
    modelBuilder.Entity<IdentityUserRole>().ToTable("AspNetUserRoles", schema);
    modelBuilder.Entity<ApplicationUser>().ToTable("AspNetUsers", schema);
}

这主要是基于这个问题: ASP.Net Identity - Use custom Schema ...我还没有完成复杂的答案 - 创建迁移,编辑它,应用它,删除它,再次应用它 - 这肯定是一个应该“开箱即用”的东西。

附加信息:我刚刚使用迁移重新创建了这个数据库,这样 AspNet 表将与我自己的表一起重新创建。

【问题讨论】:

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


    【解决方案1】:

    好的。所以这里的红鲱鱼是其他人发布了同样的错误,比如这些问题: - ASP.Net Identity - Use custom Schema
    - Invalid object name 'dbo.AspNetUsers' in Asp.NET MVC 5 Entity Framework
    - Invalid object name 'dbo.AspNetUsers'

    但对我来说,在尝试了上述所有方法之后,我已经将问题跟踪到了 Visual Studio 中的“发布”对话框,为我更新了我的连接字符串(以查看旧数据库)。我在调试 Azure 发布网站上的连接字符串后发现了这一点。

    【讨论】:

    • 嗨,其实我也有同样的问题。你刚刚更新了连接字符串?这就对了?您从 Azure 数据库详细信息中获取了新的?
    • 好吧,我的连接字符串在 Web.config 文件中是正确的,但发布设置被设置为执行自己的覆盖并将其重置为发布时的其他内容(到天蓝色)。就是这样!
    • 感谢您的反馈。我昨天解决了我的问题,在 Azure 服务器上为 Identity DB 使用 DB 查询。我只是无法将 Identity DB 迁移到 Azure。
    • 很高兴你被排序了。
    • 感谢上帝,我决定用谷歌搜索,这将是一个 5 小时的旅行
    【解决方案2】:

    我没有正确迁移数据库,在执行 POST 请求时导致同样的错误。

    【讨论】:

      【解决方案3】:

      如果您的应用程序在本地 (iis) 运行良好,同时在 azure 中抛出异常,那么您需要在 azure 中关闭您的资源的应用程序洞察力。

      【讨论】:

        猜你喜欢
        • 2015-02-06
        • 2018-03-16
        • 2016-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多