using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace QMHTIS.Host { public delegate bool ConsoleCtrlDelegate(int CtrlType); class Program { [DllImport("kernel32.dll")] private static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate HandlerRoutine, bool Add); static ConsoleCtrlDelegate consoleCtrl = new ConsoleCtrlDelegate(HandlerRoutine); /// /// 程序关闭事件 /// /// /// public static bool HandlerRoutine(int ctrlType) { switch (ctrlType) { case 0: case 2: Console.WriteLine("控制台关闭"); //停止服务 _manager.Stop(); break; default: break; } return false; } /// /// 服务管理者 /// private static ServiceManager _manager = null; static void Main(string[] args) { bool bRet = SetConsoleCtrlHandler(consoleCtrl, true); try { QMFrameWork.Log.LogManager.Configure("log4net"); //装配数据工厂 QMFrameWork.Data.DataFactory.Configure(true); //定义服务管理者 _manager = new ServiceManager(); //启动服务 _manager.Start(); Console.ReadLine(); //停止服务 //_manager.Stop(); } catch (Exception ex) { if (QMFrameWork.Log.LogManager.LogHelper != null) { QMFrameWork.Log.LogManager.LogHelper.Error( new QMFrameWork.Log.LogInfo { ClientIP = "localhost", UserName = "admin", Info = "应用启动", ErrorInfo = ex }); } //停止服务 _manager.Stop(); Console.WriteLine(ex.Message); } } } }