Entity framework EF5代码首次迁移问题发布到IIS

Entity framework EF5代码首次迁移问题发布到IIS,entity-framework,ef-code-first,connection-string,entity-framework-migrations,Entity Framework,Ef Code First,Connection String,Entity Framework Migrations,我创建了一个MVC4项目,它首先使用EF5代码进行迁移。 因为我不熟悉这个话题,所以我使用了下面的方法 现在开发已经完成,我想发布到IIS(我使用FTP或Web部署包)。因此,在发布之前,我将connectionstring更改为正确的db服务器。 但是在发布网站之后,我在访问使用数据库的页面时遇到了一个异常。例外情况是指他无法连接到数据库 由于这些问题,我决定在另一台数据库服务器上本地试用,而不是在默认的数据库服务器上(LocalDB)\v11.0)。顺便说一句:“(LocalDB)\v11.

我创建了一个MVC4项目,它首先使用EF5代码进行迁移。 因为我不熟悉这个话题,所以我使用了下面的方法

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

由于这些问题,我决定在另一台数据库服务器上本地试用,而不是在默认的数据库服务器上(LocalDB)\v11.0)。顺便说一句:“(LocalDB)\v11.0”的工作方式就像一个符咒。。。 在调试时,我对错误有了更好的了解。 以下是错误的图像:

我已经尝试过的:

  • 通过执行“更新数据库-脚本”生成sql脚本 -SourceMigration:$InitialDatabase”,位于PackageManager控制台中。在我在dbserver上运行这个脚本来创建数据库之后。桌子是 已创建,但错误仍然存在
  • 我将我的连接字符串更改为各种组合,没有 结果
  • 我已经为ISS中的应用程序池使用了一个自定义用户,并授予该用户对DB服务器和DB的完全权限
以下是my web.config最重要的部分:

<connectionStrings>
   <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=LOCALHOST\MSSQLSERVER;Initial Catalog=ProjectX;Integrated Security=TRUE;MultipleActiveResultSets=True" />
</connectionStrings>
我想我遗漏了什么,这是我第一次在迁移中使用EF代码。
这个问题真的快把我逼疯了。我没有主意。

刚刚发现问题是由连接字符串引起的。 该字符串不正确,如果您有一个默认的SQL Server,您可能需要使用它 “数据源=本地主机”

我想,由于那天在部署方面遇到的所有问题,我忽略了简单的部分。当你遇到像我一样的问题时,一定要确保以下几点是正确的:

  • 您的connectionstring与DBContext具有相同的名称。另一个解决方案可以是像我一样,将connectionstring名称添加到基中:

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

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


  • 如果问题仍然存在,当您的站点应用程序访问数据库时,您可以使用EF profiler查看连接字符串。

    内部异常是什么?我现在无法访问该项目。我将在今天晚些时候粘贴它们。但它首先是关于EF代码的ProviderManifestToken。。。
    <entityFramework>
     <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
       <parameters>
         <parameter value="Data Source=LOCALHOST\MSSQLSERVER; Integrated Security=True; MultipleActiveResultSets=True" />
       </parameters>
     </defaultConnectionFactory>
    </entityFramework>
    
    public DBContext(): base("DefaultConnection")
    {
    }