你的现在安装的机器上有MainControl.exe这个文件吗?你看看你自己的日志不就知道哪里执行出错了吗?可以在测试阶段把你的日志写得更详细些。

解决方案 »

  1.   

    当然有这个文件了,这个日志文件根本就没生成。c:下 没有C:\\服务日志文件\\servicelog.txt 这个日志文件!很是奇怪!!
      

  2.   

    问题解决!!
    服务要是有一点错误都会不执行的!!
    我找到了两个错误:
    1. 无法创建"C:\\服务日志文件\\servicelog.txt 因为服务日志文件目录不存在!
    2.应该把mainControl.exe和相关的Dll放在SYSTEM32 下!要不启动服务后,找不到这个可执行文件!我解决的办法是调试服务
    调试的办法是附加到进程,但由于Onstart 执行的太快了!所以应该在 Onstart开始处休眠
    10-20秒,Sleep(10000)多谢各位了!!
    期望碰到此问题的朋友有所帮助!
      

  3.   

    可以这样:
    System.IO.StreamWriter sw = File.AppendText("C:\\服务日志文件\\servicelog.txt ");
    如果由 path 指定的文件不存在,则创建该文件。如果该文件存在,则对 StreamWriter 的写入操作将文本追加到该文件。允许其他线程在文件打开后读取该文件。按照你的,可以重载StreamWriter方法实现
    private StreamWriter sw;
    sw = new StreamWriter(filename,true);
      

  4.   

    你的程序OnStart后执行那段代码后就完了,当然会提示“什么服务启动后又停止了,一些服务自动停止”了。就像一个控制台程序只有Console.Write(""),没有Conosle.ReadLine()一样,一执行就结束了。
      

  5.   

    我昨天第一次写服务程序时也遇见的同样的问题,后来以下二处修改后就OK了。
    在OnStart中最后加入 base.OnStart(args);
    在OnStop中最后加入 base.OnStop(args);
      

  6.   

    呵呵,细节问题:sw.Flush();这个函数不调用是不写入进日志的