提供者未返回 ProviderManifestToken 字符串实体框架

新手上路,请多包涵

从数据库获取提供者信息时出错。这可能是由 Entity Framework 使用不正确的连接字符串引起的。检查内部异常以获取详细信息并确保连接字符串正确。

内部异常: {"The provider did not return a ProviderManifestToken string."}

我搜索了其他线程,因为有很多类似的错误,但我似乎找不到解决方案。

我正在使用 VS2012 Professional 和 SQL Server 2012。我可以使用 Windows 身份验证使用服务器资源管理器连接到服务器。我正在构建一个具有多层的网络表单应用程序。其中之一包含我的实体框架层,其中包含我的 Context 类。

 <?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
  </system.web>

  <connectionStrings>
    <add name="MYSQLSERVER"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=myComputer\MYSQLSERVER;Trusted_Connection=true"></add>
  </connectionStrings>
</configuration>

这就是我的实体框架类库层中的 app.config 的样子。

 <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
</configuration>

另外,我尝试将 app.config defaultConnectionFactory 类型更改为

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

但它没有改变任何东西。

我不确定我所做的任何改变意味着什么让我担心。当然,我可以在网上找到解决方案并解决了我的问题,但我真的很想了解 web.config 以及这一切意味着什么。除了找到解决此问题的方法之外,任何人都可以指出我学习 web.configs 的正确方向吗?

提前感谢您的帮助。

原文由 Leyth G 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

就我而言,是我的 SQL Server 实例没有运行。我只是启动了服务,一切正常。希望这对未来的人有所帮助。

原文由 dotNET 发布,翻译遵循 CC BY-SA 3.0 许可协议

我经常忘记为什么这个错误经常出现。对我来说,通常我已经更改了数据库的凭据,并且没有在代码部分进行相同的更改。以防万一我再来这里提醒自己。

原文由 Sely Lychee 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进