1

我正在使用 ado.net 实体框架 4.1 连接到位于我的计算机上的 sql server 2008 r2 64 位实例。但是当我尝试初始化连接时,出现以下异常:

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

该实例的 sql 服务正在运行,还有 sql 浏览器。为 1433 端口和 sql 浏览器添加了例外。在 sql server 配置管理器中,启用了共享内存,也称为管道和 tcp/ip。

这些是我的 app.config 连接字符串:使用用户名和密码:

 <connectionStrings>
<add name="DbTerminalContext" connectionString="Data Source=URIEL\SQLIT64;Initial Catalog=IFDB;User Id=sa;Password=password;MultipleActiveResultSets=True"
  providerName="System.Data.SqlClient" />

这是使用 Windows 身份:

<add name="DbTerminalContext" connectionString="Data Source=URIEL\SQLIT64;Initial Catalog=IFDB;Trusted_Connection=True;MultipleActiveResultSets=True"
  providerName="System.Data.SqlClient" />

我尝试使用 URIEL、.\SQLIT64 和 localhost\SQLIT64 的 insted,但我根本无法连接。

我已经搜索并尝试了在这里和其他地方找到的各种解决方案。没有任何解决办法。所以有人可以帮助我吗?提前致谢

4

2 回答 2

0

尝试将元数据资源信息添加到您的连接字符串。

假设您的实体数据模型名为“TerminalDataEntities.edmx”,则在项目的 obj\Debug\edmxResourcesToEmbed 文件夹中生成了三个文件。

  • 终端数据实体.csdl
  • 终端数据实体.ssdl
  • 终端数据实体.msl

要将这些资源添加到您的连接字符串中,您需要更改 add-Tags connectionString-Value 的格式。

元数据:

metadata=res://*/TerminalDataEntities.csdl|res://*/TerminalDataEntities.ssdl|res://*/TerminalDataEntities.msl;

提供者:

provider=System.Data.SqlClient;

和提供者连接字符串:

provider connection string=&quot;Data Source=URIEL\SQLIT64;Initial Catalog=IFDB;Trusted_Connection=True;MultipleActiveResultSets=True&quot;

把它们放在一起:(使用 Windows 标识)

<add name="DbTerminalContext" connectionString="metadata=res://*/TerminalDataEntities.csdl|res://*/TerminalDataEntities.ssdl|res://*/TerminalDataEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=URIEL\SQLIT64;Initial Catalog=IFDB;Trusted_Connection=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

(没有 Windows 标识)

<add name="DbTerminalContext" connectionString="metadata=res://*/TerminalDataEntities.csdl|res://*/TerminalDataEntities.ssdl|res://*/TerminalDataEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=URIEL\SQLIT64;Initial Catalog=IFDB;User Id=sa;Password=password;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

希望这有效。

于 2012-11-27T00:57:11.973 回答
0

检查是否在 Sql Server 配置管理器中启用了 NamedPipes

(开始 -> SQL* -> 配置 -> SQL Server 配置管理器,然后单击 SQL Server 网络配置节点)。

于 2012-11-27T00:31:19.123 回答