求助_请教下大神,有遇到过这个问题吗?_产供销
学习.交流
专业源于专注
www. onlyit. cn   
学习交流 文件下载 手册资料 交流QQ群

    

 8  1/1   1  
作者
内容
vlv  [个人空间]


注册  2018-08-31
发贴数  3
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#1»发布于2018-08-31 08:28

服务器端server还在运行,但客户端连接不了。 
只能强制重开服务器端。 
是否有个工具来检测服务端是否真的卡死了还是假的卡死状态呢? 
如传输心跳信息或者带外数据?


        


mevmev  [个人空间]


注册  2017-03-15
发贴数  157
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#2»发布于2018-08-31 08:39

一个思路供参考:服务器端开启日志,用外挂定时读取最新的日志,如果最后一条日志与读取时间相差太久,则判定服务器端已挂,结束进程并重启程序。


        


flytosky  [个人空间]


注册  2017-01-21
发贴数  2
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#3»发布于2018-09-12 10:51

确实有这个问题,我之前向作者反映过。具体的表现是server的进程还在,7777端口不见了,只剩下7771端口。 
我现在的办法是写个powershell脚本定时检测7777端口,如果不正常就杀死进程再重新运行,目前效果良好。通过脚本日志分析,这个问题有可能跟windows系统更新有关。


        


flytosky  [个人空间]


注册  2017-01-21
发贴数  2
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#4»发布于2018-09-12 11:36

分析了一下这两个多月的脚本日志,客户端突然连接不上有两种情况: 
 
1、windows系统因为更新等原因,造成server进程终止,日志显示为: 
09/12/2018 07:56:56: 端口7777监听正常,PID: 3964 
09/12/2018 08:05:22: 监听端口7777不存在。 
09/12/2018 08:05:23: 主程序未启动。 
09/12/2018 08:05:23: 正在启动主程序... 
09/12/2018 08:05:23: 主程序启动成功。 
09/12/2018 08:10:09: 端口7777监听正常,PID: 2840 
 
这是今天的日志,我查了一下,windows系统在7:57自动更新了系统 
 
2、server进程在,7777端口不见了,日志显示为: 
08/29/2018 15:45:11: 端口7777监听正常,PID: 3872 
08/29/2018 15:50:32: 监听端口7777不存在。 
08/29/2018 15:50:32: 主程序已启动,端口7777无效,正在终止PID: 3872 
08/29/2018 15:50:37: 正在启动主程序... 
08/29/2018 15:50:37: 主程序启动成功。 
08/29/2018 15:55:36: 端口7777监听正常,PID: 4812 
 
这种情况近3个月发生了两次,原因未知。 
 
我的系统是windows 2012 R2 + sql server 2012


        于 2018-09-12 11:36 被 flytosky 修改


qqq  [个人空间]


注册  2018-09-12
发贴数  1
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#5»发布于2018-09-12 12:42

楼上的效果不错,可否分享下脚本?谢谢




laughtiger  [个人空间]
QQ名  天天笑


注册  2011-05-06
发贴数  76
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#6»发布于2018-09-12 12:56

我编了个守护进程,就是监测服务端口,如果端口不通则重启服务。




laughtiger  [个人空间]
QQ名  天天笑


注册  2011-05-06
发贴数  76
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#7»发布于2018-09-12 13:02

守护程序界面:



附件(登录后才可下载):1809121302_22.exe  说明:程序分享: 原文件:OIT服务监控.exe   大小:53248 Byte

        于 2018-09-12 13:02 被 laughtiger 修改


htc  [个人空间]


注册  2017-12-30
发贴数  538
精华数  0
原创贴  0
来自  
状态  正常

级别  会员
#8»发布于2018-09-12 13:41

using System; 
using System.Diagnostics; 
using System.Net; 
using System.Net.Sockets; 
 
namespace ConsoleApplication2 

    class Program 
    { 
        static void Main(string[] args) 
        { 
                IPAddress ip = IPAddress.Parse("127.0.0.1"); 
                IPEndPoint point = new IPEndPoint(ip, int.Parse("7777")); 
                try 
                { 
                    TcpClient tcp = new TcpClient(); 
                    tcp.Connect(point); 
                    Console.Write("端口正常");  
                } 
                catch (Exception ex) 
                { 
                Console.Write("端口不正常!"); 
                Console.WriteLine(); 
                Console.Write(ex.Message); 
                Console.WriteLine(); 
                foreach (Process p in Process.GetProcesses()) 
                { 
                    try 
                    { 
                        if (p.MainWindowHandle == IntPtr.Zero) continue; 
                        if (p.ProcessName == "server.ex") 
                        { 
                            Console.WriteLine(p.ProcessName + ":"); 
                            Console.WriteLine(); 
                            Console.WriteLine(p.MainModule.FileName); 
                        } 
                    } 
                    catch (System.Exception exp) 
                    { 
                        Console.WriteLine(exp.Message); 
                    } 
                } 
            } 
            Console.WriteLine(); 
            Console.ReadLine(); 
        } 
        } 
    }





 8  1/1   1  

登录后方可发贴


[ 电话: 0571-85462761 王先生 QQ: 124520435 加入软件QQ群 - 杭州 - 浙ICP备19051128号-1 网安 33010402003225 ]