1

SQL Server 名称:ECARE432
实例名称:SQLEXPRESS

app.config包含:

<connectionStrings>
   <add name="TimeTracker.Properties.Settings.myecareConnectionString"  
        connectionString="Data Source=ECARE432;Initial Catalog=myecare;Persist Security Info=True;User ID=sa;Password=ecare123@" 
        providerName="System.Data.SqlClient"/>
</connectionStrings>

我已经使用 VS 2008 和 SQL Server 2008 在 WPF (C#) 中开发了我的第一个应用程序。它在我的系统上运行良好。部署后,它在其他系统上不起作用。

它显示以下错误消息。

提供程序命名管道提供程序错误 40 - 无法打开与 sql server 2008 的连接

我已经通过谷歌并完成了以下步骤,但没有用。

  1. 配置工具 -> SQL Server 配置管理器 -> SQL Native Client 配置别名 -> 别名 -> ECARE432,1433,端口号 -> 1433,协议 -> TCP/IP,服务器名称 -> ECARE432
  2. TCP/IP 已启用。协议 -> TCP/IP 属性 -> IP1 -> 活动 - 是 已启用 - 是,IP 地址 - 我的系统 IP 地址,TCP 动态端口 - 空白,TCP 端口 - 1433
    • IP2 -> 活动 - 是,启用 - 是,IP 地址 - 127.0.0.1,TCP 动态端口 - 空白,TCP 端口 - 1433
    • IPALL -> TCP 动态端口 - 空白,TCP 端口 - 1433
  3. SQL Server 浏览器正在运行。
  4. 服务器名称正确。没有错字不匹配。
  5. 客户端机器能够 ping 我的机器。(PING ECARE432正在工作)
  6. TCP 1433 和 UDP 1434 例外添加到防火墙。还关闭了我的系统和客户端系统中的防火墙。
  7. sqlbrowser.exe被添加到防火墙例外列表中。
  8. 在 SQL Server 属性中的连接下启用允许远程连接。
  9. Visual Studio --> 工具 --> 选项 --> 数据库工具 --> 数据连接 --> 将“SQL Server 实例名称”从空白更改sqlexpress为空白。

请指导我如何解决此问题。

4

1 回答 1

2

如果您有 SQL Server Name:ECARE432和 Instance Name: SQLEXPRESS- 那么您需要在连接字符串中ECASE432\SQLEXPRESS用作您的值:Data Source=

<connectionStrings>
   <add name="TimeTracker.Properties.Settings.myecareConnectionString"  
        connectionString="Data Source=ECARE432\SQLEXPRESS;Initial Catalog=myecare;Persist Security Info=True;User ID=sa;Password=ecare123@" 
        providerName="System.Data.SqlClient"/>
</connectionStrings>

同样的道理——如果你的实例真的被调用SQLEXPRESS了——那你为什么要这样做?

Visual Studio --> 工具 --> 选项 --> 数据库工具 --> 数据连接 --> 将“SQL Server 实例名称”从 sqlexpress 更改为空白。

完全没有意义。如果实例确实存在SQLEXPRESS- 就让它发生吧!

于 2013-05-04T10:42:52.517 回答