【问题标题】:Can't access SQL Server through network无法通过网络访问 SQL Server
【发布时间】:2015-03-21 03:27:04
【问题描述】:

我编写了一个数据库程序,我将在不同的计算机上运行,​​数据库将在服务器上,即我的计算机上有 SQL Server,IP 地址为 192.168.11.55,为 SQL Server 启用的端口为 1433。当我尝试访问/登录我得到以下错误。

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,并且 SQL Server 已配置为允许远程连接。

当我尝试从自己的计算机连接时,我确实可以工作。

这是数据库连接类

class DBConnection
{
    public static SqlConnection conn;

    public static SqlConnection openconn()
    {
        if (conn == null)
        { 
            conn = new SqlConnection("data source=tcp:192.168.11.55,1433;initial catalog=SMS_DB;integrated security=sspi");
            //I tried below code as well
            //conn = new SqlConnection("data source=tcp:KASHIFAHMAD-PC,1433;initial catalog=SMS-AWKUM;integrated security=sspi");
        }

        if (conn.State!=ConnectionState.Open)
        {
            conn.Open();
        }
        return conn;
    }
}

【问题讨论】:

  • 这是 SQL Server Express 版本吗?默认情况下,这些功能未启用远程连接
  • 不,不是 Express

标签: c# sql-server winforms networking ip


【解决方案1】:

有很多可能的原因,主要是连接性。

确保您计算机上的防火墙未阻止 1433 端口的传入连接。

如果您的服务器是 SQL Server Express - 请确保将其配置为接受远程连接(在 SQL Express 中默认情况下禁用此功能,它仅侦听本地连接)。

请参阅herehere,了解如何启用 SQL Express 接受远程连接。

【讨论】:

  • 这很可能是解决方案。即使 SQL Server 配置为允许网络连接,它也可能仍在使用动态端口,因为这是默认设置。您需要将端口显式设置为 1433 并禁用动态端口,这在此答案的第二个链接中有所提及。如果您没有将“TCP 动态端口”条目设为空白,即使您将端口设置为 1433,这也不起作用。不要忘记重新启动服务。
【解决方案2】:

这有很多原因。首先,您通过测试该服务器响应。

Window + Run - >type cmd  -> type ping ipaddress -t

然后检查响应是否到来。

如果有响应,则通过SSMS (management sudion),检查连接。

如果没问题,请重新连接您的应用。

如果您有问题,请使用工具中的SQlserver Data connect 向导。

连接它并保存在 web.config 中。

如果一切正常,则删除 SQLserver 数据连接及其在 web.config 中的条目。

这肯定会对你有所帮助。

【讨论】:

    【解决方案3】:

    您是否在服务器的 SQL 配置管理器中启用了 TCP/IP 名称管道选项?

    【讨论】:

    • 是的,我已经启用了 TCP/IP
    • 您能否为可能不知道如何操作的其他人列出如何执行此操作?谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2020-02-29
    • 1970-01-01
    • 2011-12-11
    • 2023-03-24
    相关资源
    最近更新 更多