示例#1
0
 /// <summary>
 /// 向服务列表中添加一项
 /// </summary>
 /// <param name="s"></param>
 private void AddServiceItem(ServiceProp s)
 {
     if (listView1.InvokeRequired)
     {
         Action actionDelegate = () =>
         {
             ListViewItem lvi = new ListViewItem();
             lvi.SubItems[0].Text = s.Code;
             lvi.SubItems.Add(s.Name);
             lvi.SubItems.Add(" ");
             lvi.SubItems.Add(" ");
             listView1.Items.Add(lvi);
         };
         listView1.BeginInvoke(actionDelegate);
     }
     else
     {
         ListViewItem lvi = new ListViewItem();
         lvi.SubItems[0].Text = s.Code;
         lvi.SubItems.Add(s.Name);
         lvi.SubItems.Add(" ");
         lvi.SubItems.Add(" ");
         listView1.Items.Add(lvi);
     }
 }
示例#2
0
        /// <summary>
        /// 启动服务域
        /// </summary>
        /// <param name="serviceProp"></param>
        private void _StartServiceDomain(ServiceProp serviceProp)
        {
            try
            {
                SetServiceStatus(serviceProp.Code, "正在启动。。");
                WriteToConsole("正在启动服务!" + serviceProp.Name, "info");

                IService.Host serviceHost = new Host(this, serviceProp);

                //创建AppDomain 隔离 服务
                ServiceManager manager = new ServiceManager();
                manager.Logger        = Util.GetLogger(serviceProp);
                manager.ServiceProp   = serviceProp;
                manager.ServiceLoader = new ServiceLoader.ServiceLoader(serviceHost);
                manager.ServiceLoader.LoadAssembly(serviceProp);
                manager.Service = (IService.IService)manager.ServiceLoader.GetInstance(serviceProp.ClassName);

                //创建新的标签页
                CreateTabPage(serviceProp);

                try
                {
                    manager.Service.StartService(serviceHost);
                    SetServiceStatus(serviceProp.Code, "启动");
                    WriteToConsole("服务" + serviceProp.Name + "已启动", "info");
                }
                catch (Exception ex0)
                {
                    WriteToConsole("启动服务时发生错误:" + serviceProp.Name, "error");
                    WriteToConsole(ex0.ToString(), "error");
                    SetServiceStatus(serviceProp.Code, "启动时发生错误");
                }

                ServiceManagerList.Add(manager);
            }
            catch (Exception ex)
            {
                WriteToConsole("启动服务时发生错误:" + serviceProp.Name, "error");
                WriteToConsole(ex.ToString(), "error");
                SetServiceStatus(serviceProp.Code, "启动时发生错误");
            }
        }
示例#3
0
        /// <summary>
        /// 创建标签页
        /// </summary>
        /// <param name="serviceProp"></param>
        private void CreateTabPage(ServiceProp serviceProp)
        {
            try
            {
                //如果已存在就不再重新创建
                if (tab.TabPages["tab" + serviceProp.Code] != null)
                {
                    return;
                }
                //创建新的标签页
                if (tab.InvokeRequired)
                {
                    Action actionDelegate = () =>
                    {
                        //创建textbox
                        System.Windows.Forms.TextBox serviceInfo = new TextBox();
                        serviceInfo.BackColor  = System.Drawing.SystemColors.ControlLightLight;
                        serviceInfo.Dock       = System.Windows.Forms.DockStyle.Fill;
                        serviceInfo.Location   = new System.Drawing.Point(3, 3);
                        serviceInfo.Multiline  = true;
                        serviceInfo.Name       = "txt" + serviceProp.Code;
                        serviceInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;

                        serviceInfo.ReadOnly = true;
                        serviceInfo.Size     = new System.Drawing.Size(624, 455);
                        //创建tablepage
                        TabPage tabService = new TabPage();

                        tabService.Controls.Add(serviceInfo);
                        tabService.Location = new System.Drawing.Point(4, 22);
                        tabService.Name     = "tab" + serviceProp.Code;
                        tabService.Padding  = new System.Windows.Forms.Padding(3);
                        tabService.Size     = new System.Drawing.Size(630, 461);
                        tabService.Text     = serviceProp.Name;
                        tabService.UseVisualStyleBackColor = true;

                        this.tab.Controls.Add(tabService);
                    };
                    tab.BeginInvoke(actionDelegate);
                }
                else
                {
                    //创建textbox
                    System.Windows.Forms.TextBox serviceInfo = new TextBox();
                    serviceInfo.BackColor  = System.Drawing.SystemColors.ControlLightLight;
                    serviceInfo.Dock       = System.Windows.Forms.DockStyle.Fill;
                    serviceInfo.Location   = new System.Drawing.Point(3, 3);
                    serviceInfo.Multiline  = true;
                    serviceInfo.Name       = "txt" + serviceProp.Code;
                    serviceInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;

                    serviceInfo.ReadOnly = true;
                    serviceInfo.Size     = new System.Drawing.Size(624, 455);
                    //创建tablepage
                    TabPage tabService = new TabPage();

                    tabService.Controls.Add(serviceInfo);
                    tabService.Location = new System.Drawing.Point(4, 22);
                    tabService.Name     = "tab" + serviceProp.Code;
                    tabService.Padding  = new System.Windows.Forms.Padding(3);
                    tabService.Size     = new System.Drawing.Size(630, 461);
                    tabService.Text     = serviceProp.Name;
                    tabService.UseVisualStyleBackColor = true;

                    this.tab.Controls.Add(tabService);
                }
            }
            catch (Exception ex)
            {
                WriteToConsole("创建服务标签页时发生错误:", "error");
                WriteToConsole(ex.ToString(), "error");
            }
        }
示例#4
0
 public static string GetServiceInfo(ServiceProp type)
 {
     ManagementObjectSearcher managementObjectSearcher =
         new ManagementObjectSearcher("Select " + type + " From Win32_Service");
     ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get();
     string result = null;
     foreach (ManagementObject managementObject in managementObjectCollection.Cast<ManagementObject>())
     {
         result = managementObject[type.ToString()].ToString();
     }
     return result;
 }