可以看一下MSDN  :)如果WINFORM里工作OK的话,有些地方进行修改或优化一下就可以了。不过。NET做出来的SERVICE似乎内存多要了点,呵呵,不过一旦进程空下来,内存马上就下去了  :)

解决方案 »

  1.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.ServiceProcess;
    using System.IO;namespace test
    {
    public class Service1 : System.ServiceProcess.ServiceBase
    {
    /// <summary> 
    /// 必需的设计器变量。
    /// </summary>
    private System.ComponentModel.Container components = null; public Service1()
    {
    // 该调用是 Windows.Forms 组件设计器所必需的。
    InitializeComponent(); // TODO: 在 InitComponent 调用后添加任何初始化
    } // 进程的主入口点
    static void Main()
    {
    System.ServiceProcess.ServiceBase[] ServicesToRun;

    // 同一进程中可以运行多个用户服务。若要将
    // 另一个服务添加到此进程,请更改下一行
    // 以创建另一个服务对象。例如,
    //
    //   ServicesToRun = New System.ServiceProcess.ServiceBase[] {new Service1(), new MySecondUserService()};
    //
    ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun);
    } /// <summary> 
    /// 设计器支持所需的方法 - 不要使用代码编辑器 
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    // 
    // Service1
    // 
    this.ServiceName = "MyService"; } /// <summary>
    /// 清理所有正在使用的资源。
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } /// <summary>
    /// 设置具体的操作,以便服务可以执行它的工作。
    /// </summary>
    protected override void OnStart(string[] args)
    {
    FileStream fs = new FileStream(@"c:\temp\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write); 
    StreamWriter m_streamWriter = new StreamWriter(fs); 
    m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); 
    m_streamWriter.WriteLine(" mcWindowsService: Service Started \n"); 
    m_streamWriter.Flush(); 
    // TODO: 在此处添加代码以启动服务。
    }
     
    /// <summary>
    /// 停止此服务。
    /// </summary>
    protected override void OnStop()
    {
    FileStream fs = new FileStream(@"c:\temp\mcWindowsService.txt" , FileMode.OpenOrCreate, FileAccess.Write); 
    StreamWriter m_streamWriter = new StreamWriter(fs); 
    m_streamWriter.BaseStream.Seek(0, SeekOrigin.End); 
    m_streamWriter.WriteLine(" mcWindowsService: Service Stopped \n"); 
    m_streamWriter.Flush();  // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
    }
    }
    }我做的这个服务怎么启动很正常,但是关不了,关闭时提示我出错,然后这个服务的启动和关闭都被禁掉了
      

  2.   

    一般windows service都会采用多Thread,  :)
      

  3.   

    你下面的语句错误 ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun);==========================================================================
    Service1=>MyService