我创建了一个MVC 4项目,该项目使用EF5 Code First进行迁移。 因为我是这个主题的新手,所以我使用了以下article。
现在开发完成了我想发布到IIS(我使用FTP或Web部署包)。所以在发布之前我将连接字符串更改为正确的数据库服务器。 但在发布网站后,我在访问使用数据库的页面时遇到异常。例外是指他无法连接到数据库。
由于这些问题,我决定在另一台DB服务器上本地试用它,而不是默认的“(LocalDB)\ v11.0”。 BTW:“(LocalDB)\ v11.0”就像一个魅力...... 在调试时我更好地了解了错误。 这是错误的图像:
我已经尝试过:
这是我的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进行迁移。 这个问题真的让我抓狂。我没有想法。
答案 0 :(得分:0)
刚刚发现问题是由connectionstring引起的。 字符串不正确,如果你有一个默认的SQL Server就好像你需要使用它 “数据源= LOCALHOST”。
我想因为当天部署的所有问题我忽略了简单的部分。当你遇到像我这样的问题时,请务必确保以下事项属实:
您的connectionstring与您的DBContext同名。另一个解决办法可能就像我做的那样,并将连接字符串名称添加到基础:
public DBContext():base(“DefaultConnection”) { }
如果您还设置了defaultconnectionfactory。确保还在那里更新数据源。这是我努力解决的问题之一。我没有检查我的web.config的底部......
如果问题仍然存在,您可以使用EF Profiler在您的网站应用访问数据库时查看connectionstring。