C# 无法在SQL Management Studio中连接

C# 无法在SQL Management Studio中连接,c#,sql-server,networking,C#,Sql Server,Networking,我的应用程序从无法连接到数据库的客户端计算机引发错误。因此,作为测试,我在同一台客户机上使用SQL Management Studio 2008尝试连接到数据库,我发现如果使用IP\InstanceName,则可以连接,但如果使用ServerComputerName\InstanceName,则无法连接。我已核实以下情况: 服务器与客户端具有相同的网关和子网掩码 我可以使用服务器的IP地址或计算机名ping服务器 服务器或客户端计算机上都没有防火墙 验证服务器SQL浏览器服务是否正在运行 验证服

我的应用程序从无法连接到数据库的客户端计算机引发错误。因此,作为测试,我在同一台客户机上使用SQL Management Studio 2008尝试连接到数据库,我发现如果使用IP\InstanceName,则可以连接,但如果使用ServerComputerName\InstanceName,则无法连接。我已核实以下情况:

  • 服务器与客户端具有相同的网关和子网掩码

  • 我可以使用服务器的IP地址或计算机名ping服务器
  • 服务器或客户端计算机上都没有防火墙
  • 验证服务器SQL浏览器服务是否正在运行
  • 验证服务器是否设置为允许远程连接
  • 验证是否通过SQL Server配置管理器启用了服务器TCP/IP
  • 我可以使用ServerComputerName\InstanceName从其他客户端计算机进行连接
  • 服务器和客户端都在使用静态IP设置,IPV4属性下没有DNS服务器
  • 从客户端到服务器的Tracert只显示一个跃点,即直接到服务器机器IP的跃点。
  • 我可以使用主机名从服务器计算机或viceversa远程访问客户端计算机
  • 然后我转到服务器机器并使用LNKLAB8\Xmark(LNKLAB8是主机名,Xmark是我的实例名)进行连接,连接成功。但是,当我运行SELECT@@SERVERNAME命令时,返回的结果是LnkLabrial8\XMARK

    这让我很困惑,因为如果我按照下面的屏幕截图右键单击数据库属性,它会显示LNKLAB8/Xmark。。我是疯了还是有什么奇怪的事?在完成了我所采取的步骤之后,您对如何让客户机使用服务器主机名而不是服务器IP地址连接到数据库有何建议

    在这个问题上我有点撞到墙了,我不确定我是面临着与网络相关的问题,还是数据库设置问题

    编辑:当我尝试使用主机名连接到服务器数据库时,我会得到以下结果:

    建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)

    1)确保已启用TCP/IP(配置管理器),并重新启动MSSQL 我注意到:

    8:服务器和客户端都在使用静态IP设置,IPV4属性下没有DNS服务器


    那么,名称解析是如何发生的呢?赢了?NetBIOS?Sql Server可能不喜欢这样。尝试检查您的DNS服务器是否具有适合您的Sql server系统的相应条目,情况可能会更好。

    尝试将服务器IP和名称添加到c:\WINDOWS\system32\drivers\etc\hosts

    查看此链接:我再次检查服务器和客户端计算机的主机文件中是否没有任何条目,他们都评论掉了。当你ping时,你得到了什么ip?这个ip和机器ip相同吗?我还想指出,这不是一个编程问题,而是一个网络问题。当我ping服务器名称时,我得到了正确的服务器IP地址,我把它放在程序下,看看是否有任何开发人员遇到过类似的问题。嗯,当我添加这个时,它工作了。然而,我还是有一部分对此感到不安,哈哈。。。。我有另一台机器,有精确的设置,主机文件不包含任何内容,该机器可以工作…哦,好吧,我会继续研究,直到找到一个比当前更好的分辨率。谢谢您,Nick。“8.服务器和客户端都在使用静态IP设置,IPV4属性下没有DNS服务器。”-如果没有DNS服务器,您不能使用名称)可能会自动设置DNS。尝试比较DNS地址不喜欢“\”DB名称中的此符号。它不会引起任何问题吗?您指的是LNKLABARIAL8\XMARK?\只是将实例和DB主机名分开。“我可以使用服务器的IP地址或计算机名ping服务器。”您说过“ping”可以在没有显式/etc/hosts条目的情况下解析。所以我猜问题可能是DNS后缀(例如“mycompany.com”和“mylan.local”)?如果是这样的话,它可能会与“ServerComputerName.fqdn.com\InstanceName”一起工作?我同意您所说的,并且从这个客户端的解决方案判断,它无法正确解析名称。。。。奇怪的是,我有另一个客户端,它与精确的ipconfig设置和跟踪路由完美配合。