Connectionstring仅适用于global.asax

时间:2013-02-05 21:16:25

标签: asp.net-mvc entity-framework ef-code-first connection-string ef-migrations

我在VS2012中首先使用EF 5 Code的MVC 4应用程序。 我在另一台笔记本电脑上创建了这个应用程序,我也激活了迁移,但又禁用了它(通过删除迁移文件夹并删除de DB中的表)。 现在我将整个解决方案复制到我的第二台笔记本电脑,但我再也无法运行该应用程序了。

尝试访问数据库时,我总是遇到异常。

  

提供程序未返回providermanifesttoken字符串

内部异常

  

{“建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供者:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)“}

我使用以下连接字符串

<connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" />
  </connectionStrings>

当我把它放在我的global.asax中时,它确实有效。

Database.DefaultConnectionFactory = new SqlConnectionFactory(@"Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True");

所以简而言之,在我创建项目的笔记本电脑上,一切都与web.config中的连接字符串一起工作,但在我的其他电脑上它只适用于de global.asax

有没有人能解决这个恼人的问题?

1 个答案:

答案 0 :(得分:0)

我终于找到了问题的解决方案。 好像我在配置中遗漏了一些东西。 我仍然不明白为什么它适用于我的其他机器,但对于那些遇到同样问题的人,请尝试以下方法。

我在配置中有以下内容。

  <entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />

stackoverflow上发现此帖后,我将其替换为此片段

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="Data Source=(localdb)\v11.0; Integrated Security=True; MultipleActiveResultSets=True" />
  </parameters>
</defaultConnectionFactory>