当前位置:编程学习 > C#/ASP.NET >>

windows服务定时执行一个EXE 问题

有两个程序 
1、自己写的一个控制台程序
2、WINDOWS服务
如果手动双击EXE文件是能正常执行的
当时把这个控制台程序加到服务程序中定时启动改控制台程序只会在任务管理器中一闪而过没有启动
不知道是什么原因 请大虾们帮帮忙
protected override void OnStart(string[] args)
        {
            
            while (true)
            {
                if (System.Diagnostics.Process.GetProcessesByName("PublishGTechnologyDDC").Length == 0)
                {
                    string path = AppDomain.CurrentDomain.BaseDirectory;
                    System.Diagnostics.Process.Start(path + @"\PublishGTechnologyDDCService.exe");

                }
                else
                    continue;
                System.Threading.Thread.Sleep(10000);
            }
        }
以上为服务代码 控制台 Windows --------------------编程问答-------------------- 不要把死循环写在OnStart中,应该写在一个线程里面,而OnStart负责启动起来。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
不要把死循环写在OnStart中,应该写在一个线程里面,而OnStart负责启动起来。
+1 --------------------编程问答-------------------- 定时器,在.net中是非常特别的(几种)类型。能使用现成的,绝不要自己“发明”什么定时。

例如在windows服务中,你可以使用 System.Threading.Timer 就可以了。 --------------------编程问答-------------------- 至于说你的exe管理出现问题,通常你应该为你的这个windows服务写一个日志,记录每一次执行 Process.Start 的必要信息。然后在你的那么 exe 中应该监听 AppDomain 的 UnhandledException 事件,并将 e.ExceptionObject.ToString() 记录到日志中。

有了日志,才好查错。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,