劳驾给个windows服务的范例

麻烦给个windows服务的范例
我照着webcast里面的步骤一步步做,做是做出来了,能安装但是启动不了,没写什么逻辑,就一个OnStart和OnStop里面写入一个txt文件,记录时间,我也真服我了,照着来做,搞了大半上午都没搞出来,还是启动不了。提示说“启动后停止了”,我犯傻了。
好心人,提供个 .net3.5的创建的“windows服务”项目源码,只要能运行安装和运行就OK,在OnStart和OnStop里面写入一个txt文件,我想对比下我错哪了
比如:

 protected override void OnStart(string[] args)
        {
            StreamWriter sw ;
            try
            {
                sw = File.AppendText("d:\\Logs.txt"); ;
                sw.WriteLine("服务启动成功:"+dateTimePicker1.Value.ToString());
            }
            catch (Exception ex)
            {
                sw = File.AppendText("d:\\Logs.txt");
                sw.WriteLine("StartErro:" + ex.Message);
            }
        }

项目源码传网盘给小弟下载看看,麻烦你们了

------解决方案--------------------
http://www.cnblogs.com/caca/archive/2005/02/25/109028.html

你可以将服务附加到进程调试看下
------解决方案--------------------
服务用的权限和当前登陆账号不一样,看看是不是权限问题。
------解决方案--------------------
还有,服务是没有 “窗体”,也就是说,别弄控件。
------解决方案--------------------
开发时,你应该使用Console程序来测试。例如把你要执行的方法放到一个工程中,然后被一个Console工程引用。待调试/测试完毕,需要发布时,你的那个Window Service工程才用上,这个工程中大致只写

 protected override void OnStart(string[] args)
        {
             MyDll.Program.Main();
        }

这一行代码就够了。
------解决方案--------------------
例如你的 MyProc.exe 可能是这样的
    public class Program
    {
        static void Main(string[] args)
        {
            //加载一大堆服务,监听一些端口
            Console.WriteLine();
            Console.WriteLine("系统已经进入控制台Pending状态(按Ctrl+C键关闭进程)........");
            Console.WriteLine();
            var mh = new ManualResetEvent(false);
            Console.CancelKeyPress += (s, e) => mh.Set();
            while (!mh.WaitOne(TimeSpan.FromSeconds(120)))
                每隔2分钟进行一次服务垃圾数据清理();
       }
      ....


这时候,如果打开进程管理器,你可以看到真正的服务进程被守护进程自动启动。

你也可以修改一下守护进程,让它自动维护多个服务程序。