传奇单机架设列表读取失败及常见问题解决方法

来源: 作者: 点击:
列表读取失败的核心原因在于LoginSrv服务未正确广播服务器信息。首先确认LoginSrv.exe是否运行,其控制台窗口应持续显示“等待客户端连接”状态。若程序启动后立即关闭,检查依赖文件是否存在:!Setup.txt、!ServerInfo.txt、!AddrTable.txt缺一不可,且必须位于LoginSrv同级目录。

第二步:检查!ServerInfo.txt内容格式。该文件定义登录器显示的服务器列表,标准格式为:
服务器名称=IP地址:端口
例如:
热血传奇=127.0.0.1:7000
IP地址必须与M2Server实际监听地址一致。若M2Server绑定0.0.0.0或局域网IP(如192.168.1.100),此处不可写127.0.0.1(除非客户端与服务端在同一机器)。端口号默认7000,需与LoginSrv监听端口匹配。文件保存时编码必须为ANSI,UTF-8或带BOM会导致解析失败,表现为列表为空。

第三步:验证端口监听状态。在命令提示符执行:
netstat -ano | findstr :7000
若无LISTENING记录,说明LoginSrv未成功启动。可能原因包括端口被占用、配置文件语法错误或缺少运行库(如VC++ Redistributable)。尝试更换端口(如7001),并同步修改!ServerInfo.txt中的端口值。

第四步:防火墙拦截通信。Windows Defender防火墙默认阻止未知程序对外通信。进入“控制面板系统和安全Windows Defender 防火墙允许应用通过防火墙”,添加LoginSrv.exe为允许项,或直接临时关闭防火墙测试。

第五步:登录器版本不匹配。部分登录器内置固定服务器列表地址,忽略本地!ServerInfo.txt。使用配套登录器,或通过资源工具(如WIL Explorer)查看其内部配置。通用判断方法:将登录器与服务端放在同一目录运行,若仍无法读取列表,则为登录器硬编码问题。

第六步:!AddrTable.txt配置错误。该文件用于区组映射,格式为:
区号=IP:端口
如:
0=127.0.0.1:7000
区号通常为0,IP和端口需与M2Server的监听地址完全一致。若留空或填写错误,LoginSrv无法向客户端返回有效入口,导致列表加载失败。

第七步:路径包含中文或特殊字符。MirServer主目录若位于“桌面”“下载”等含中文路径下,部分旧版服务端无法正确读取配置文件。建议将整个服务端移至纯英文路径,如D:MirServer。

第八步:服务端组件缺失。完整单机包应包含LoginSrv、DBSrv200、M2Server三个核心进程。若缺少DBSrv200,角色数据无法加载,间接导致登录流程中断;若M2Server未启动,LoginSrv虽广播列表但实际无法进入游戏。务必确保三者同时运行。

日志排查:LoginSrv正常运行时会在Log目录生成Login.log。启动登录器后,若日志无新增连接记录,说明客户端未连上LoginSrv;若有“Recv List Request”但无响应,检查!ServerInfo.txt权限是否为只读,或磁盘空间是否不足。

快速测试流程:
关闭所有杀毒软件
将服务端移至D:MirServer
修改!ServerInfo.txt为:测试服=127.0.0.1:7000(ANSI编码)
以管理员身份运行LoginSrv.exe
使用配套登录器点击刷新
若此时列表仍为空,替换为原始未修改的服务端包重新测试,逐步还原自定义内容以定位故障点。