using IL.Common; using MediII.Adapter.Scan.Interface; using MediII.Adapter.Scanner; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO.Pipes; using System.Linq; using System.ServiceProcess; using System.Text; using System.Threading; using System.Windows.Forms; namespace MediII.Adapter.MsgToKCServer { /// /// /// public partial class MsgToKCServer : ServiceBase { private bool _addPool = false;//是否启动 private Scaner scanner = new Scaner(); /// /// /// public MsgToKCServer() { InitializeComponent(); } /// /// /// /// protected override void OnStart(string[] args) { sp_MessageLog(null, new LogEventArgs() { LogTime = DateTime.Now, LogModel = new LogModel() { Message = "服务启动" } }); LogHelper.LogDebug("服务启动", LogCatagories.General); LogHelper.LogInfo("服务启动", LogCatagories.General); LogHelper.LogError("服务启动", LogCatagories.General); LogHelper.LogDebug("服务启动", LogCatagories.Sock); LogHelper.LogInfo("服务启动", LogCatagories.Sock); LogHelper.LogError("服务启动", LogCatagories.Sock); LogHelper.LogDebug("服务启动", LogCatagories.AdapterScan); LogHelper.LogInfo("服务启动", LogCatagories.AdapterScan); LogHelper.LogError("服务启动", LogCatagories.AdapterScan); LogHelper.LogDebug("服务启动", LogCatagories.SQL); LogHelper.LogInfo("服务启动", LogCatagories.SQL); LogHelper.LogError("服务启动", LogCatagories.SQL); System.Diagnostics.Debug.WriteLine("OnStart", ApplictStatic.ServerName); //_running = true; if (!_addPool) { ThreadPool.QueueUserWorkItem(DoTask); _addPool = true; } } private void DoTask(object state) { var args = new string[] { "UE" }; if (args.Length > 0) { string dllPath = System.IO.Path.Combine(Application.StartupPath, args[0]); string path = Environment.GetEnvironmentVariable("path") + ";" + dllPath; Environment.SetEnvironmentVariable("path", path); scanner.Start(new string[] { dllPath }, sp_MessageLog); } } /// /// /// protected override void OnStop() { sp_MessageLog(null, new LogEventArgs() { LogTime = DateTime.Now, LogModel = new LogModel() { Message = "服务停止" } }); scanner.Stop(); System.Threading.Thread.Sleep(10 * 1000);//暂时10秒再退出 } void sp_MessageLog(object sender, LogEventArgs e) { ServiceStatusPublishManager.Instance.AppendMessage(e); } } }