EntityException:基础提供程序因Open +内部异常而失败

时间:2019-05-03 12:59:32

标签: c# entity-framework

我向您道歉,因为我看到很多人已经回答了这个问题,但仍然找不到我想要的答案。

在我的解决方案中,我有5个项目,其中2个是C#库(Core层和Data层)。其他三个使用核心层连接到数据层,这三个是一个Web-API项目,一个测试winform项目和一个MVC项目。我目前正在尝试winform项目,而这正是发生错误的地方。连接到数据库时,API项目可以正常工作。

正如标题所示,我在winform项目中遇到了这个普遍的例外情况

  

System.Data.DataException:'初始化时发生异常   数据库。有关详细信息,请参见InnerException。'

     

EntityException:基础提供程序在打开时失败。

具有以下内部例外情况

  

SqlException:连接超时已过期。超时时间已过   尝试使用登录前握手确认时。   这可能是因为登录前握手失败或服务器已   无法及时回复。尝试花费的时间   连接到该服务器的方法是-[登录前]初始化= 38878;   握手= 35;


  

Win32Exception:等待操作超时

错误发生在Database.Initialize(true);上的我的数据上下文中:

    public class DataContext : DbContext
    {
        public DataContext() : base("HololensRegistreringsskyltar")
        {
            Database.SetInitializer(new DataContextInitializer<DataContext>());
            Database.Initialize(true);
        }
    }

如果这很重要的话,我也在工作单元中使用通用存储库模式(这是我的新手)。

在API项目web.config中只有一个连接字符串,也许在其他两个“外”层中也应该有连接字符串吗?

谁能告诉我如何解决此问题并使之适用于所有3个“外部”层?

1 个答案:

答案 0 :(得分:0)

以下情况可能导致此异常:

  • SQL Server数据库引擎的实例未运行。
  • SQL Server浏览器服务未运行。
  • TCP / IP被禁用。
  • 服务器名称输入错误。
  • 存在网络问题。
  • 数据库引擎实例的TCP / IP端口被防火墙阻止。
  • 客户端和服务器未配置为使用相同的网络协议。