【问题标题】:The network path was not found. provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server找不到网络路径。提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接
【发布时间】:2016-09-18 08:23:10
【问题描述】:

环境:.NET Framework 4.6、VS 2015、Entity Framework 6.x

我正在尝试连接到远程服务器,但是当我尝试从 Entity Framework 连接时出现此错误:

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

InnerException = {"找不到网络路径"}

我能够从 SQL Server Management Studio 连接到同一台服务器。

请指点。

MultipleTestModel.Context.cs

 public partial class fccidevEntities : DbContext
 {
     public fccidevEntities()
            : base(hr.common.Database.EntitiesConnectionString("res://*/ef.MultipleTestModel.csdl|res://*/ef.MultipleTestModel.ssdl|res://*/ef.MultipleTestModel.msl"))
     {
     }
     ...
}

common.Database.EntitiesConnectionString :

public static string EntitiesConnectionString(string model,string)
{
    try
    {
        SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["fccidevConnection"].ConnectionString);

        builder["MultipleActiveResultSets"] = true;
        builder["Connect Timeout"] = 30;

        EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
        entityBuilder.Provider = "System.Data.SqlClient";
        entityBuilder.ProviderConnectionString = builder.ConnectionString;

        entityBuilder.Metadata = model;

        return entityBuilder.ToString();
    }
    catch(Exception ex)
    { 
         throw ex; 
    }
}

达尔:

using (var dbTest = new fccidevEntities())
{
    var EmployeeInformation = await dbTest.Employees.Where(x => x.Id == 10).FirstOrDefaultAsync();
}

web.config:

<add name="fccidevConnection" 
     connectionString="Data Source=System.Data.SqlClient;Initial Catalog=dev.ca.atech.com;Integrated Security=False;User Id=sa;Password=*****;MultipleActiveResultSets=True" 
     providerName="System.Data.SqlClient" />

【问题讨论】:

    标签: c# sql-server entity-framework


    【解决方案1】:

    您的配置文件中的连接字符串有错误。

    这个:

    Data Source=System.Data.SqlClient
    

    ... 不正确。它应该是这样的:

    Data Source=SERVER_HOST_NAME_OR_IP\SQL_SERVER_INSTANCE_NAME
    

    几个例子:

    Data Source=HP-14\SQLEXPRESS
    Data Source=.\SQLEXPRESS
    Data Source=192.168.0.19\INSTANCE14
    

    【讨论】:

      【解决方案2】:

      需要将服务器配置为处理来自同一登录的多个连接。或者您必须以这样一种方式管理您的连接,即您在任何时候都只能打开一个连接

      【讨论】:

        猜你喜欢
        • 2013-02-18
        • 2011-03-08
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 2017-12-20
        • 2016-09-28
        • 1970-01-01
        • 2012-04-14
        相关资源
        最近更新 更多