每个客户端开启后有个进程,或者你暴漏一个GUID, 然后写个监听程序可以试试

解决方案 »

  1.   

    为什么在webform里,你管理的不是控制台吗
    你想在其他电脑上看?
    可以先用winform程序监控进程,有问题写数据库,webform访问数据库
      

  2.   

    这个问题我两年前也遇到了,我们服务器上有二三十个控制台程序,远程上去复制(Ctrl+C)个东西,有时候还可能不小心就把控制台给结束掉了,我就自己用winform弄了个管理工具,获取每个控制台程序的句柄,把所有程序都嵌入在一个panel中,这样就可以很方便在管理程序里面看到每个程序的运行情况又不用担心Ctrl+C不小心结束掉某个程序了,然后在管理程序中加个线程每隔多少时间去定时检查程序运行情况,挂了就重启。
      

  3.   

    7楼的方法可取,如果是自己开发工具,直接通过工具配置好你要打开的程序,然后一个打开,并做个界面,将这些程序全部嵌入到你的工具里,具体界面自己考虑,需要实现的就是嵌入的代码。可以通过Api或.net句柄装载指定界面        /// <summary>设置指定句柄对象的父窗体(将句柄对象装入父窗体中)
            /// </summary>
            /// <param name="hChild">子对象句柄</param>
            /// <param name="hParent">父窗体句柄</param>
            /// <returns></returns>
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            public static extern IntPtr SetParent(IntPtr hChild, IntPtr hParent);     
      

  4.   

    给你写一个基于 #3 楼那样的设计。假设你要守护的程序都写在一个文本文件 sc.ini 中,是这样的Name1=c:\\xxx\yyy\name1.exe
    Name2=d:\\mm.exe
    其中,前边的是程序运行起来之后的进程名,后边是需要运行的程序的启动路径。你可以写这样一个 console 程序用来启动它们using System;
    using System.Diagnostics;
    using System.IO;
    using System.Linq;namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                var lines = File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "sc.ini"));
                var sch = (from x in lines
                           let s = x.Split('=')
                           where s.Length == 2
                           select new
                           {
                               进程名 = s[0].Trim(),
                               程序路径 = s[1].Trim()
                           }).ToList();
                sch.ForEach(sc =>
                {
                    var ps = Process.GetProcessesByName(sc.进程名);
                    if (ps.Length == 0)
                        Process.Start(sc.程序路径);
                });
           }
        }
    }每次运行它,可以检查一遍目标程序启动状况。然后你就可以在你的服务器上创建一个 windows 计划任务,设置每隔10秒钟执行一次这个程序(这个程序很快,所以可以把间隔时间设置的短一些)。