【问题标题】:Entity Framework 4.1 The provider did not return a ProviderManifestToken string ExceptionEntity Framework 4.1 提供者没有返回 ProviderManifestToken 字符串异常
【发布时间】:2011-09-08 11:49:24
【问题描述】:

我在 vb.net 中下载了 Asp.NET MVC 3 EntityFramework Code 第一个示例应用程序并修改了连接字符串,因为我没有 SQL Server Express Edition 来尝试使用 Sql Server 2008 Web Edition

<add name="ApplicationServices"
         connectionString="Server=MyPC\Sql2008;Trusted_Connection=True;MultipleActiveResultSets=True"
         providerName="System.Data.SqlClient" />

当我尝试运行应用程序时,会抛出 ProviderIncompatibleException 异常。并在浏览器窗口中显示以下错误。

“/”应用程序中的服务器错误。

与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:共享内存提供者,错误:40 - 无法打开与 SQL Server 的连接)

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:共享内存提供者,错误:40 - 无法打开与 SQL Server 的连接)

来源错误:

第 24 行: 第 25 行: 第 26 行:@For 模型中的每个项目 第 27 行:@ 第 28 行:

源文件:C:\Documents and Settings\Shishir Shukla\My Documents\Downloads\CodeFirstEFVB\CodeFirstMVC\Views\Blog\Index.vbhtml 行:26

我使用的连接字符串与我的 asp.net webforms 应用程序和 Winforms 应用程序完美配合。

请尽快帮我解决这个问题,因为我刚刚切换到 MVC。

【问题讨论】:

  • 您需要在连接字符串中添加Initial Catalog。通过Connection Strings找到合适的
  • 是您的 SQL 实例的 Sql2008 名称吗?无效的连接字符串也会引发此错误。

标签: sql-server-2008 asp.net-mvc-3 entity-framework-4.1 ef-code-first


【解决方案1】:

问题出在连接字符串上,我把它改成了这个,它工作了..

<add name="DBCon" connectionString="Data Source=.\SQL2008;Initial Catalog=TestDB;Integrated Security=True" providerName="System.Data.SqlClient" />

【讨论】:

    【解决方案2】:

    你能提供你下载的项目的链接吗?

    您使用的是 Windows 身份验证,IIS 帐户是否有权访问数据库?

    最后,验证您的 dbContext 类名为“ApplicationServices”。否则,您可能需要使用接受 nameOrConnectionString 的构造函数。

    【讨论】:

    • 感谢您的回复,问题是由连接字符串引起的
    【解决方案3】:

    您的连接字符串是有效的 SQL 连接字符串,但您需要一个实体框架连接字符串。

    创建 EF 模型时,从头开始创建新的连接字符串。这将解决这个问题。

    您可以查看 web.config 中的新连接,您会看到实体连接包含附加元数据作为连接字符串的一部分,并包装了 SQL 连接字符串。

    更新:

    有效的实体连接字符串如下所示:

    &lt;add name="MyDatabaseEntities" connectionString="metadata=res://*/Models.MyDatabase.csdl|res://*/Models.MyDatabase.ssdl|res://*/Models.MyDatabase.msl;provider=System.Data.SqlClient;provider connection string=&amp;quot;data source=SERVER;initial catalog=MyDatabase;persist security info=True;user id=userid;password=password;multipleactiveresultsets=True;App=EntityFramework&amp;quot;" providerName="System.Data.EntityClient" /&gt;

    但是,您应该让 Visual Studio 为您构建连接字符串。

    【讨论】:

    • 能否提供一个EntityFramework连接字符串示例。
    • CodeFirst 不需要这个
    • 我在 Scott Gu 的博客中读到,在使用 Entity Framewrok 时,我们不必使用 csdla、ssdl 文件。实际上我使用 CodeFirst 方法
    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 2016-04-04
    • 1970-01-01
    • 2019-05-25
    • 2018-06-29
    • 2013-09-28
    • 2012-08-08
    • 1970-01-01
    相关资源
    最近更新 更多