CSharp - SQL Server 连接问题我可以连接,但其他用户无法连接

  显示原文与译文双语对照的内容
0 0

[edit] 不确定发生了什么,但是我们重新设置了服务器并关闭/命名管道(Named Pipes)/并重新启动和更新设置。 weirdest的事谢谢大家帮助。

我正在为我的工作构建一个 C# WPF应用程序,我得到一个奇怪的问题。 应用程序连接到服务器,并在启动时导入几个表。 所以我建立了它并且没有问题,但是当我传递给测试人员时,每个人都会得到以下错误:

提供者:命名管道(Named Pipes) 提供程序,错误:40 - 无法打开与 SQL Server的连接

用户可以通过它的他方法连接到服务器,但是只是通过应用程序不能工作。

我已经检查过了:

  1. 已经启用远程连接
  2. 已经启用 tcp/ip连接
  3. 防火墙设置在所有用户中都是完全相同的( 我包括)
  4. 应用程序编译为 32位( 在另一个线程中看到)

我们正在使用 SQL Server 2008,我尝试了几个连接字符串/方法。

下面是我用来连接的代码:


 public void Open_DB_Conn(string Connection_Str)
 {
 try
 {
 Sql_Conn = new SqlConnection(Conn_Str);
 Sql_Conn.Open();
 }
 catch (Exception e)
 {
 MessageBox.Show(string.Format("Error Message:{0} Conn String: {1}",e.Message,Conn_Str));
 }
 }

下面是我的连接字符串( 这只是我尝试让它工作的许多迭代中的一个):


Data Source=IP Address;Initial Catalog=DB_Name;User ID=LOGIN;Password=PWD

任何人都知道我是唯一能够使用它的人,并且用户可以使用它的他应用程序登录到服务器。 他们用来记录他们的excel脚本,但没有任何问题。

时间: 原作者:

0 0

你必须配置你的SQL Server,以便它的他IP可以将它的连接到你的链接中。

配置 SQL Server

原作者:
0 0

你对 SQL Server 使用的身份验证是什么? Windows 身份验证或者 SQL Server 身份验证? 我建议首先启用 SQL Server 身份验证,然后使用sapassword连接到服务器。 如果成功,请请求其他的( 应用程序的用户) 尝试使用相同的连接字符串。 告诉 我 您 发现 了 什么 。

0 0

请确保指定的端口为:


Data Source="IPAddress,port";Initial Catalog=DB_Name;User ID=LOGIN;Password=PWD

SQL Server 上的端口匹配。 你可以通过 SQL Server 配置管理 进行检查并查看 tcp/ip属性。

编辑:

它也是由外部防火墙阻塞的端口所定义的情况。 其他应用程序使用其他端口。 尝试找出你可以使用哪个端口( 如果确实是对你的网络的限制)

原作者:
0 0

确保 SQL Server 实例已经正确配置为使用 SQL Server 配置管理 使用 TCP 。

默认情况下在 SQL Express 中禁用,如下所示。

enter image description here

原作者:
0 0

我想了解更多关于你的"sql_conn"类的信息。

另外,尝试在连接中使用这个。


using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
 conn.Open();

 using (var cmd = conn.CreateCommand())
 {
 string cmdText ="SELECT name FROM sys.tables"


 cmd.CommandText = cmdText;

 cmd.ExecuteNonQuery();
 }
}

原作者:
...