【发布时间】:2014-01-31 11:46:09
【问题描述】:
我正在使用 VS2013 和 Entity Framework 6.1 来对抗 SQL 2012。
当我使用 Code First 在 Dev 中创建我的类和表时,它工作正常。 当我通过 Web Deploy 发布到我的第三方主机时,所有内容都已部署,但数据库中没有创建任何表。连接字符串包含对数据库具有表创建访问权限的用户的适当用户名和密码。 (经过测试,因为我通过 SSMS 使用相同的登录名/密码 在托管的 SQL 服务器上成功创建表) 数据库发布连接字符串已正确创建并具有正确的值。
当我部署带有“执行代码优先迁移”复选框的 ASP.Net MVC 应用程序时,该应用程序会在托管服务器上引发 500 错误。
对可能出现的问题有任何想法吗?
【问题讨论】:
-
你能从服务器得到错误吗? EFCF 迁移在上下文初始化时运行,因此如果出现错误,它们可能不会运行;或者,它们可能是原因。手动更改架构不是一个很好的解决方法,因为它会阻止迁移以后运行(“表 Foo 已经存在”类型错误)。
-
我还不能得到确切的错误。如果我删除“执行代码优先迁移”,错误就会消失,所以我认为它与初始化有关。
-
设置一个全局错误处理程序(控制器),在视图中显示错误描述。视图将键入
@model System.Web.Mvc.HandleErrorInfo。并显示@Model.Exception.Message。这样您将看到 EF 发出的确切错误消息。 -
我理解您声明的视图部分,但我对将控制器设置为全局错误处理程序有点不清楚。您可以给我任何示例或进一步说明吗?我目前在项目上安装和配置了 Elmah,但无法从中得到任何响应。谢谢
-
好的,我会在几分钟后发布答案..
标签: entity-framework visual-studio-2013 entity-framework-6