1

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

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

由于这些问题,我决定在另一台数据库服务器上本地尝试,而不是默认的“(LocalDB)\v11.0”。顺便说一句:“(LocalDB)\ v11.0”就像一个魅力......在调试时,我更好地了解了错误。这是错误的图像: 错误图片

我已经尝试过的:

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

这是我的 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 进行迁移。这个问题真的让我抓狂。我没主意了。

4

1 回答 1

0

刚刚发现问题是由连接字符串引起的。字符串不正确,如果您有默认 SQL Server,您似乎只需要使用“Data Source=LOCALHOST”。

我想由于那天我在部署中遇到的所有问题,我忽略了简单的部分。当您遇到像我这样的问题时,请确保以下事项属实:

  1. 您的连接字符串与您的 DBContext 具有相同的名称。另一个解决方案可能是像我一样做并将连接字符串名称添加到基础:

    公共 DBContext(): base("DefaultConnection") { }

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

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

于 2013-04-03T06:38:56.683 回答