我有一个应用程序,它有客户端版本(工作站)和服务器版本(服务)。客户端版本在 Windows XP 上,服务器版本在 Windows Server 2003 上。我们有很多机器运行不同的设置和网络。上面提到的客户端机器应用程序挂起,只有那个设置挂起,除此之外,在不同网络上运行的所有其他系统都没有任何问题。
我怀疑这与某些网络问题有关。请提供可能导致应用程序在客户端服务器环境中挂起的预期网络问题。我听说“同一个网络名称与多个 IP 地址相关联,这可能会导致名称解析至少出现一些延迟,或者最坏的情况是导致挂起的故障”,这是正确的吗?还有其他的吗?
这是从服务器获取的主机文件的一部分。这里麻烦的客户端计算机名称是tvr-lzvrts
,但我再次看到lzvrts2
,我是否需要将其移到注释(#)中。我可以看到很多没有注释的条目 mntis mnefms ht7
192.61.247.204 tvr-lzvrts2 lzvrts2 # TISSON
192.61.247.205 ght7 ht7 # TISSON
192.61.247.94 mns6 mntis mnefms # LEVIS
编辑
还有一件事,我忘了当我询问一些 IP 地址信息时,团队说他们正在使用 IP 地址作为文件中的占位符,Hosts
直到他们从客户那里获得正确的公共 IP 地址。电缆未连接。我是否需要禁用这些端口,直到他们准备好为客户使用真实的 IP 地址?
编辑
在客户端系统中,我的应用程序占用了大部分内存,CPU 使用率约为 93%。我从任务管理器确认了这些事实。我可以看到我的应用程序上有很多闪烁。
答案1
使用 hosts 文件将主机名解析为 IP 地址很容易出错,不同计算机上的 hosts 文件之间可能会出现不一致的情况。从长远来看,最好使用本地 DNS 服务器(使用拆分 DNS,以便本地计算机可以解析非本地 Internet 主机名)。
我将使用
ping
它来检查hosts
文件是否按预期工作。在客户端,打开命令提示符窗口并输入ping servername
。您可以在服务器上使用 ping 命令来检查服务器的 hosts 文件是否具有正确的客户端主机名和地址但这通常是不必要的。
您可以使用数据包嗅探器(例如Wireshark) 查看客户端正在发送什么以及发送到哪里。我发现“跟踪 TCP 连接”功能特别有用。您需要对 TCP/IP 有基本的了解。
例子
C:\> ping servername
Pinging servername.example.com [192.61.247.99] with 32 bytes of data:
Reply from 192.61.247.99: bytes=32 time<1ms TTL=64
Reply from 192.61.247.99: bytes=32 time<1ms TTL=64
Reply from 192.61.247.99: bytes=32 time<1ms TTL=64
Reply from 192.61.247.99: bytes=32 time<1ms TTL=64
Ping statistics for 192.61.247.99:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
请注意,它获得了名称的正确 IP 地址
servername.example.com [192.61.247.99]
。检查响应时间是否合理 -
time<1ms
检查没有数据包丢失 -
(0% loss)
答案2
您可能需要查看您的网络,看看所有 API、NIC 卡是否都已更新。如果名称未用于解析,则您可能需要转到注释。还请检查您的日志