MsgToKCServer.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using IL.Common;
  2. using MediII.Adapter.Scan.Interface;
  3. using MediII.Adapter.Scanner;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Diagnostics;
  9. using System.IO.Pipes;
  10. using System.Linq;
  11. using System.ServiceProcess;
  12. using System.Text;
  13. using System.Threading;
  14. using System.Windows.Forms;
  15. namespace MediII.Adapter.MsgToKCServer
  16. {
  17. /// <summary>
  18. ///
  19. /// </summary>
  20. public partial class MsgToKCServer : ServiceBase
  21. {
  22. private bool _addPool = false;//是否启动
  23. private Scaner scanner = new Scaner();
  24. /// <summary>
  25. ///
  26. /// </summary>
  27. public MsgToKCServer()
  28. {
  29. InitializeComponent();
  30. }
  31. /// <summary>
  32. ///
  33. /// </summary>
  34. /// <param name="args"></param>
  35. protected override void OnStart(string[] args)
  36. {
  37. sp_MessageLog(null,
  38. new LogEventArgs()
  39. {
  40. LogTime = DateTime.Now,
  41. LogModel = new LogModel() { Message = "服务启动" }
  42. });
  43. LogHelper.LogDebug("服务启动", LogCatagories.General);
  44. LogHelper.LogInfo("服务启动", LogCatagories.General);
  45. LogHelper.LogError("服务启动", LogCatagories.General);
  46. LogHelper.LogDebug("服务启动", LogCatagories.Sock);
  47. LogHelper.LogInfo("服务启动", LogCatagories.Sock);
  48. LogHelper.LogError("服务启动", LogCatagories.Sock);
  49. LogHelper.LogDebug("服务启动", LogCatagories.AdapterScan);
  50. LogHelper.LogInfo("服务启动", LogCatagories.AdapterScan);
  51. LogHelper.LogError("服务启动", LogCatagories.AdapterScan);
  52. LogHelper.LogDebug("服务启动", LogCatagories.SQL);
  53. LogHelper.LogInfo("服务启动", LogCatagories.SQL);
  54. LogHelper.LogError("服务启动", LogCatagories.SQL);
  55. System.Diagnostics.Debug.WriteLine("OnStart", ApplictStatic.ServerName);
  56. //_running = true;
  57. if (!_addPool)
  58. {
  59. ThreadPool.QueueUserWorkItem(DoTask);
  60. _addPool = true;
  61. }
  62. }
  63. private void DoTask(object state)
  64. {
  65. var args = new string[] { "UE" };
  66. if (args.Length > 0)
  67. {
  68. string dllPath = System.IO.Path.Combine(Application.StartupPath, args[0]);
  69. string path = Environment.GetEnvironmentVariable("path") + ";" + dllPath;
  70. Environment.SetEnvironmentVariable("path", path);
  71. scanner.Start(new string[] { dllPath }, sp_MessageLog);
  72. }
  73. }
  74. /// <summary>
  75. ///
  76. /// </summary>
  77. protected override void OnStop()
  78. {
  79. sp_MessageLog(null, new LogEventArgs() { LogTime = DateTime.Now, LogModel = new LogModel() { Message = "服务停止" } });
  80. scanner.Stop();
  81. System.Threading.Thread.Sleep(10 * 1000);//暂时10秒再退出
  82. }
  83. void sp_MessageLog(object sender, LogEventArgs e)
  84. {
  85. ServiceStatusPublishManager.Instance.AppendMessage(e);
  86. }
  87. }
  88. }