EF5 Code First Migration问题发布到IIS

时间:2013-04-02 06:24:26

标签: entity-framework ef-code-first connection-string ef-migrations

我创建了一个MVC 4项目,该项目使用EF5 Code First进行迁移。 因为我是这个主题的新手,所以我使用了以下article

现在开发完成了我想发布到IIS(我使用FTP或Web部署包)。所以在发布之前我将连接字符串更改为正确的数据库服务器。 但在发布网站后,我在访问使用数据库的页面时遇到异常。例外是指他无法连接到数据库。

由于这些问题,我决定在另一台DB服务器上本地试用它,而不是默认的“(LocalDB)\ v11.0”。 BTW:“(LocalDB)\ v11.0”就像一个魅力...... 在调试时我更好地了解了错误。 这是错误的图像: Picture of the Error

我已经尝试过:

  • 通过执行“Update-Database -Script”生成sql脚本 -SourceMigration:$ InitialDatabase“在包管理器控制台中。我在dbserver上运行此脚本以创建db。表是 已创建,但错误仍然存​​在。
  • 我把我的连接字符串改为各种组合,没有 结果
  • 我已经在ISS中为app池使用了自定义用户,并为该用户提供了对DB服务器和db的完全权限。

这是我的web.config中最重要的部分:

<connectionStrings>
   <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=LOCALHOST\MSSQLSERVER;Initial Catalog=ProjectX;Integrated Security=TRUE;MultipleActiveResultSets=True" />
</connectionStrings>

<entityFramework>
 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
   <parameters>
     <parameter value="Data Source=LOCALHOST\MSSQLSERVER; Integrated Security=True; MultipleActiveResultSets=True" />
   </parameters>
 </defaultConnectionFactory>
</entityFramework>

我的DBCcontext类构造函数看起来像

public DBContext(): base("DefaultConnection")
{
}

我想我错过了一些东西,这是我第一次使用EF Code First进行迁移。 这个问题真的让我抓狂。我没有想法。

1 个答案:

答案 0 :(得分:0)

刚刚发现问题是由connectionstring引起的。 字符串不正确,如果你有一个默认的SQL Server就好像你需要使用它 “数据源= LOCALHOST”。

我想因为当天部署的所有问题我忽略了简单的部分。当你遇到像我这样的问题时,请务必确保以下事项属实:

  1. 您的connectionstring与您的DBContext同名。另一个解决办法可能就像我做的那样,并将连接字符串名称添加到基础:

    public DBContext():base(“DefaultConnection”) { }

  2. 如果您还设置了defaultconnectionfactory。确保还在那里更新数据源。这是我努力解决的问题之一。我没有检查我的web.config的底部......

  3. 如果问题仍然存在,您可以使用EF Profiler在您的网站应用访问数据库时查看connectionstring。