0

我想在Azure上部署MVC4 EF5代码优先应用程序。发布后,我得到这个网站上的错误:EF5代码优先Azure部署后网站上的错误

Error. An error occurred while processing your request.

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

我的ConnectionString:

Data Source=tcp:6666666.database.windows.net,1433;Initial Catalog=eatart_db;User [email protected];Password=yourmother 

我已经在配置启用了自动迁移和我执行它的部署:

internal sealed class Configuration : DbMigrationsConfiguration<EatArt.Models.EatArtDb> 
{ 
     public Configuration() 
     { 
      AutomaticMigrationsEnabled = true; 
     } 
} 

在我的Application_Start(Global.asax中):

Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EatArtDb>()); 

也。此通知会在我的天蓝色门户网站上弹出:

The server encountered an error while retrieving metrics. Retry the operation.

我在这里丢失了什么?我做错了什么?

+0

你使用SQL Azure或是你的数据库托管someplace其他?这是您第一次发布到天蓝色吗?或者你是否曾经这样做过一段时间,它刚刚停止工作? –

+0

@BenTidman - 是sql azure。是的,我有它的工作。 –

+0

@BenTidman - 我可能在某个时候重新创建了网站和数据库。但是,我不会做相同的部署程序。我有这种感觉,连接字符串必须在第一次部署时包含特定的内容,以便创建表,然后在第一次运行后再次删除。那是对的吗? –

回答

0

正如Ben Tidman所建议的那样,我将包管理器控制台中的Update-Database命令运行到Azure数据库上。这触发了表格的创建,我能够立即部署视图。

Ps。不得不将Trusted_Connection=falseencrypt=true连接到当然连接字符串..

0

我和EF有类似的问题。我的方法是远离使用DropCreateDatabaseIfModelChanges并切换到使用迁移。这里有code first migrations

一个有用的文章

DropCreate线改成这样:

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

您启用了自动迁移,但已经在初始化不使用它们。

+0

通过错误:> System.Data.MetadataException:指定的模式无效。错误: (0,0):错误0175:在配置中找不到指定的存储提供程序,或无效。 –

+0

我之前已经开始工作了,我很确定我有DropCreate。有什么建议么? –

+0

连接字符串的名称是什么?它是否与您的DbContext的名称相匹配?它需要匹配在Azure Portal – levelnis

相关问题