fypoop

博客园 首页 新随笔 联系 订阅 管理

Windows服务应用程序是一种需要长期运行的应用程序,它对于服务器环境特别适合。它没有用户界面,并且也不会产生任何可视输出。任何用户消息都会被写进Windows事件日志。计算机启动时,服务会自动开始运行。它们不要用户一定登录才运行,它们能在包括这个系统内的任何用户环境下运行。通过服务控制管理器,Windows服务是可控的,可以终止、暂停及当需要时启动。
Windows 服务,以前的NT服务,都是被作为Windows NT操作系统的一部分引进来的。它们在Windows 9x及Windows Me下没有。你需要使用NT级别的操作系统来运行Windows服务,诸如:Windows NT、Windows 2000 Professional或Windows 2000 Server。
 
使用.NET创建一个Windows服务非常方便。以下是我自己的写的一个例子。
为实现Remoting创建一个服务。
1、首先新建一个windows服务项目(起个土名叫TestService)
2、你可以看到,.NET已经为你写好了一大堆代码,你只要重写几个函数就可以实现windows服务了。
protected override void OnStart(string[] args)
  {
   // TODO: 在此处添加代码以启动服务。
   ChannelServices.RegisterChannel(chan);
   RemotingConfiguration.RegisterWellKnownServiceType(
    typeof(stime),
    "time.rem", WellKnownObjectMode.SingleCall);  
}
这个函数最重要了,一定要写哦。我在这里注册了一个管道,
chan为全局变量TcpChannel chan=new TcpChannel(5000);
3、还有就是服务停止时需要执行的命令
protected override void OnStop()
  {
   // TODO: 在此处添加代码以执行停止服务所需的关闭操作。
   ChannelServices.UnregisterChannel(chan);
   chan = null;
  }
4、然后把Service1.cs的ServiceName属性修改为MyService。这就是以后服务的名字。
5、之后转到Service1.cs的视图设计器上点右键选择添加安装程序。
6、转到ProjectInstaller视图设计器上,点serviceProcessInstaller1。修改Account属性,该属性是服务的登录为谁使用该服务,选择LocalSystem(本地系统),它的权限最高。
7、点serviceInstaller1,修改StartType属性,该属性是设置服务的执行方式是自动还是手动方式。
8、然后编译该工程。成功编译。ok服务的编写完成了。
之后就是服务的安装了。
9、在开始-〉运行-〉cmd模式下运行
InstallUtil TestService.exe
10 、安装成功后通过管理工具-〉服务就可以看到刚才自己编写的服务了,启动它。ok自己写的服务已经启动了。

后记:
可以通过InstallUtil /u TestService.exe 卸载服务。
如果你写的服务引用其他的dll,那么他们一定要在同一个目录下,否则会有错。

posted on 2005-05-09 15:31  冰冷  阅读(932)  评论(0编辑  收藏  举报