如何从Windows服务项目运行项目

时间:2014-09-22 09:38:26

标签: c# .net windows-services

我的解决方案中有3个项目:

  1. 计划程序(Windows应用程序)
  2. WCF服务(WCF)
  3. WindowsService(Windows服务)
  4. 我的计划程序使用WCF服务功能,并在计划程序决定时运行它们。

    所有这一切都运行正常,并且知道我添加新的项目Windows服务,他的目的是每次启动PC时启动调度程序,这里我失败了。

    我从未使用过Windows Service母猪我是新手。我在WindowsService中添加了Scheduler的引用,但仍无法找到运行它的方法。

    我会很高兴得到任何帮助。

    这是我尝试的代码。

    我的WindowsService项目

    My namespace WindowsService
    {
        public partial class Service1 : ServiceBase
        {
            public Service1()
            {
                InitializeComponent();
            }
    
            protected override void OnStart(string[] args)
            {
    
               // Scheduler myscheduler = new Scheduler();  
               // Scheduler.SchedulerForm myForm = new Scheduler.SchedulerForm(); 
    
            }
    
            protected override void OnStop()
            {
            }
        }
    }
    

    我的计划程序项目(主要)

    static void Main()
    {
        string step = "";
        try
        {
            ServiceHost client = new ServiceHost(typeof(WcfService.Service));
            try
            {
                using (client = new ServiceHost(typeof(WcfService.Service)))
                {
                    step = "1";
                    if (client.State == CommunicationState.Faulted)
                    {
                        step = "2";
                        System.Windows.Forms.MessageBox.Show(step);
                        System.Windows.Forms.MessageBox.Show("Faulted state. " + step);
                        client.Abort();
    
                    }
    
                    client.Open();
                    SysTrayApp();
                    Application.Run();
                }
            }
            catch (Exception ex)
            {
                if (client.State == CommunicationState.Faulted)
                {
                    step = "Faulted";
                    System.Windows.Forms.MessageBox.Show(step);
                    client.Abort();
                    client = new ServiceHost(typeof(WcfService.Service));
                }
            }
    
    
        }
        catch (Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message + "   " + ex.Source + "   " + ex.StackTrace);
        }
    }
    

0 个答案:

没有答案