服务器程序若要创建功能性服务,必须至少: 设置 ServiceName 属性。 
为服务应用程序创建必需的安装程序。 
重写 OnStart 和 OnStop 方法并为其指定代码以自定义服务的行为方式。 CanStop True 表示服务将接受停止运行的请求;false 表示禁止服务停止。 CanShutDown True 表示服务希望在运行它的计算机关闭时收到通知,以便能够调用 OnShutDown 过程。  CanPauseAndContinue True 表示服务将接受暂停或继续运行的请求;false 表示禁止服务暂停和继续。  CanHandlePowerEvent True 表示该服务可以处理有关计算机电源状态更改的通知;false 表示禁止服务得到有关这些更改的通知。 
AutoLog True 表示在服务执行操作时将信息项写入应用程序的事件日志;false 表示禁用此功能。有关更多信息,请参见记录关于服务的信息。 
注意   默认情况下,AutoLog 设置为 true。
 
注意   当 CanStop 或 CanPauseandContinue 设置为 false 时,服务控制管理器将禁用停止、暂停或继续服务的相应菜单选项。--MSDN 中文版帮助

解决方案 »

  1.   

    设置 ServiceName 属性。 
    为服务应用程序创建必需的安装程序。 
    重写 OnStart 和 OnStop 方法并为其指定代码以自定义服务的行为方式。 
    这个应该就可以了吧。
      

  2.   

    不好意思我表达错了,我写的是一个socket程序,每次listen了后,虽然我close了
    close里加了线程abort(),再关闭主程序后,进程里还有,苦恼啊
      

  3.   

    to:liduke(天下有雪) 
    刚刚搜索了相似的问题,发现线程的isbackground属性的作用
    我把socket里的thread属性改成true后,问题解决了。
    谢谢两位!