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

相關問題