【问题标题】:EF4 EntityException - The underlying provider failed on OpenEF4 EntityException - 基础提供程序在打开时失败
【发布时间】:2011-08-13 11:20:48
【问题描述】:

好的,这是一个新的。我正在尝试调试我过去已经做过很多次的项目,现在我在我的一个存储库中遇到了这个异常。我以前没见过。我已经好几天没有碰过我的存储库了,我的连接字符串和以前一样。内部异常状态:

{“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问该服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接.(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)"}

它令人窒息的代码是:

public class HGArticleRepository : IArticleRepository
{
    private HGEntities _siteDB = new HGEntities();

    public List<Article> Articles
    {
        get { return _siteDB.Articles.ToList(); } // <-- this is the line
    }

    // more repo code
}

再一次,就像我说的,我以前从未遇到过这个异常,而且我已经好几天没有碰过我的域代码了。

【问题讨论】:

  • 您是否有机会使用代码优先?
  • 好吧 - 你的数据库可以访问吗?您可以在 SQL Server Management Studio 中手动尝试连接设置以进行验证。

标签: asp.net-mvc-2 exception entity-framework-4


【解决方案1】:

这个错误通常意味着:

  1. 连接字符串指向不存在的 SQL Server。
  2. 连接字符串指向已关闭的 SQL Server。或者没有开始。
  3. 在 SQL Server 设置中禁用了命名管道传输。

一一仔细检查。在你的情况下,我猜是 2。

【讨论】:

  • 如何检查有问题的数据库是否为 SQL 2008 Express?
  • 我能够在任务管理器的服务窗格中重新打开它。不知道为什么它没有自动运行。这就是服务的目的。
  • +1;对我来说是#1;有人不小心签入了 web.config -_-
【解决方案2】:

第二种解决方案: 检查 IIS 是否正在运行。 在我的情况下,它被停止了,所以我得到了同样的错误。

【讨论】:

    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多