Entity framework EF5代码首次部署Azure后发生站点错误

Entity framework EF5代码首次部署Azure后发生站点错误,entity-framework,azure,asp.net-mvc-4,entity-framework-5,web-deployment,Entity Framework,Azure,Asp.net Mvc 4,Entity Framework 5,Web Deployment,我正在尝试在Azure上部署MVC4 EF5代码优先应用程序。发布后,我在网站上出现以下错误: 错误。处理您的请求时出错 我想那是因为数据库中没有创建表 我的连接字符串: Data Source=tcp:6666666.database.windows.net,1433;Initial Catalog=eatart_db;User Id=kasperskov@6666666;Password=yourmother 我在配置中启用了自动迁移,并在部署时执行它: internal sealed c

我正在尝试在Azure上部署MVC4 EF5代码优先应用程序。发布后,我在网站上出现以下错误:

错误。处理您的请求时出错

我想那是因为数据库中没有创建表

我的连接字符串:

Data Source=tcp:6666666.database.windows.net,1433;Initial Catalog=eatart_db;User Id=kasperskov@6666666;Password=yourmother
我在配置中启用了自动迁移,并在部署时执行它:

internal sealed class Configuration : DbMigrationsConfiguration<EatArt.Models.EatArtDb>
{
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }
}
内部密封类配置:dbmigtorinsconfiguration
{
公共配置()
{
AutomaticMiggerationsEnabled=真;
}
}
在我的应用程序_Start(global.asax)中:

Database.SetInitializer(新的DropCreateDatabaseIfModelChanges());
还有。此通知在my azure门户上弹出操作:

服务器在检索度量时遇到错误。重试 手术


我错过了什么?我做错什么了吗?

我在EF方面也有类似的问题。我的方法是不再使用
DropCreateDatabaseIfModelChanges
,转而使用迁移。这里有一篇关于

将您的
DropCreate
行更改为:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<EatArtDb, Configuration>());
Database.SetInitializer(新的MigrateDatabaseToLatestVersion());

您已经启用了自动迁移,但没有在初始值设定项中使用它们。

正如Ben Tidman所建议的,我在package manager控制台中对Azure数据库运行了更新数据库命令。这触发了表的创建,我能够立即在页面上部署一个视图


Ps.必须将
Trusted_Connection=false
encrypt=true
添加到连接字符串中当然..

通过错误:>System.Data.MetadataException:指定的架构无效。错误:(0,0):错误0175:在配置中找不到指定的存储提供程序,或者该提供程序无效。我以前已经让它工作过,我非常确定我已经创建了DropCreate。有什么建议吗?连接字符串的名称是什么?它与DbContext的名称匹配吗?它需要在Azure PortalWell中匹配。我无法为连接字符串选择名称。web deploy thingo通过发布配置文件为我做到了这一点。您使用的是sql azure还是数据库托管在其他地方?这是你第一次发布到azure吗?或者你已经这样做了一段时间,但它停止了工作?@BenTidman-是的。是的,我让它工作了。@BenTidman-我可能在某个时候重新创建了网站和数据库。但如果不是这样的话,我也会采取同样的部署程序。我觉得connectionstring必须在您第一次部署时包含一些特定的内容,以便创建表,然后在第一次运行后再次删除。那是对的吗?嗯。。。所有的远射,但。。。不确定是否需要自动迁移,但对于代码,首先我必须为IP计算机添加防火墙例外,以便连接到它并运行更新数据库。您能够通过ssms连接到数据库吗?另外,如果您重新创建了sql azure server,它现在可能具有不同的连接字符串。如果您是这样想的,我将尝试通过VS运行更新数据库迁移命令。如果这不起作用,我将被迫创建一个新项目,并从旧项目复制代码,然后再次尝试部署。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<EatArtDb, Configuration>());