这里有许多相关的细节,所以请仔细阅读。
我正在帮助一家视频租赁店改用新的 POS(收银机)软件。他们之前的软件预装在从软件发布商处购买的 3 台 Windows 7 PC 上。计算机 #1 包含 SQL Server,它为所有 3 台计算机上的 POS 软件提供服务。这是旧设置。(这可能相关,也可能不相关。)
新软件将使用远程异地 SQL Server。我已在所有 3 台计算机上安装了新 POS 软件;它们将指向与以前的软件不同的 SQL 服务器。
不幸的是,我无法让新软件从所有 3 台计算机连接到新的 SQL Server。在计算机 1(以前是旧软件的服务器)上,新软件无法找到新服务器。软件立即报告无法找到目标服务器,没有任何延迟。但是,在同一台计算机上,我使用 SQL Server Management Studio 连接到新的 SQL Server 没有任何问题。Ping 也可以毫无问题地到达远程服务器。只有 POS 软件无法找到/连接到新的 SQL 服务器。
在计算机 #2 和 #3 上,新的 POS 软件可以成功连接到我的新 SQL 服务器。这说明 POS 软件本身可能没有问题。计算机 #1 上还有其他问题导致连接无法成功。
我禁用了计算机 1 上的 McAfee 防火墙,但没有任何效果。POS 软件仍然无法连接。我检查了路由器设置,看是否存在防火墙问题。没有。我断开了计算机 1 上的网线,并将其连接到我的笔记本电脑上,这样就可以毫无问题地连接。
只是这台计算机上的这 1 个应用程序无法访问远程 SQL Server。实际上,有一个配套应用程序也存在同样的问题,但同样,只在计算机 #1 上存在。由于配套应用程序存在同样的问题,我不能责怪安装损坏。配套应用程序不与主应用程序共享已安装的组件,因为它是一个小型独立可执行文件。
我已再三检查过服务器地址、登录名、密码等。该软件似乎没有使用 ODBC。
问题可能出在哪里?除了 McAfee 防火墙软件之外,系统中是否还有其他地方可以阻止此应用程序连接到远程 SQL 服务器?也许是某些策略设置?由于计算机 #1 被指定为旧 POS 系统的服务器,软件发布者是否可以为其配置更严格的安全性,以阻止来自未知第三方应用程序的出站连接,但不阻止来自 SQL Server Management Studio 的出站连接?
是否有一个网络实用程序可以监视特定应用程序的网络连接尝试并识别连接被阻止的位置/原因?
我不是这方面的专家,所以如果你回复,请具体说明问题出在哪里以及如何修复问题。或者至少提供一些诊断方法。
答案1
我认为问题出在软件上。如果您可以通过 SSMS 连接到数据库服务器,这应该告诉您应用程序的所有功能均正常运行:硬件、布线、TCP/IP、DNS 等。
我会寻找可能配置错误的系统、用户或文件 DSN、hosts 或 lmhosts 文件中的条目、应用程序选项或设置、与应用程序相关的 ini 文件或注册表设置等等。