要交租子了

来源:互联网 发布:seo研究中心vip课程 编辑:程序博客网 时间:2024/04/25 11:57

近期一直比较忙已经很长时间没有更新Blog了,公司又要交什么所谓的技术报告,现把以前写的一下文章重新整理了一下。 相关内容如下:

 

 
Windows Service的安装,卸载,启动以及调试
 
在做C#项目时,使用到了Windows Service。现结合项目就Windows Service的相关知识做一下简单介绍。
一.        项目介绍
项目包括3个工程:一个Windows Service工程,工程名称为testService;一个具体的业务处理工程(dll),工程名称为testProject;一个安装工程,工程名称为testServiceSetup
二.        Windows Service的安装与卸载以及启动
要想运行一个Windows Service程序,首先必须将这个服务程序安装到Windows服务控制台中去。如何安装,卸载和启动Windows Service程序呢?主要有2种方式。
方式一用framwork自带的InstallUtil命令以及net start命令
1)     安装Service: InstallUtil testService.exe
2)   卸载Service: InstallUtil /u testService.exe
3)   启动Service: net start "服务名称"(当然最简单的就是手动启动了^_^)
 方式二就是做一个安装工程
     方式二的最大好处就是通过相关设定,安装完服务后可以立马注册Windows Service程序到Windows服务中去,下面我们详细说明一下如何实现这种处理方式。
1)     为Windows Service工程(testService)添加一个安装工程(testServiceSetup)
2)     右键点击创建的安装工程(testServiceSetup),选择"追加"-->"项目输出",在"添加    项目输出组"对话框中选择"主输出",在"项目"下拉框中选择需要主输出的服务程序即testService。
3)     右键点击创建的安装工程(testServiceSetup)选择"视图"-->"自定义操作",右键点击"自定义操作"添加"自定义操作",选择应用程序文件夹中的主输出程序testService,此时在以下4个节点(安装,提交,回滚,卸载)中都添加了主输出程序testService
4)     编译安装。
安装完毕后你创建的服务已经添加到Windows控制台中去了。
5)       启动Service: net start "服务名称"(当然最简单的就是手动启动了^_^)
三.        Windows Service的调试
      Windows Service程序不同于一般的应用程序,直接调试是不起作用的。在.net环境下怎样才可以实现对Windows Service程序的调试呢。 
启动Visual Studio,打开你的工程testService。选择菜单"调试->进程"。在进程窗口里附加你的服务程序testService.exe。如果看不到 testService.exe,请选中"显示系统进程"。这样就能看到以system账号运行的Service。如果你已经设置了断点,当Serice运行到你设置的断点时,程序就会停下来等待你的调试。(说明:只有Debug模式下编译的testService.exe才可以进行调试)
四.        Onstart()的调试
1)
在方法Onstart()里设置System.Timers.Timer,然后用Timer来延迟启动服务。 
   延迟的时间由你进入调试状态的时间来决定。可以设置为5秒。当然服务启动后应停
Timer(设置Timer.Enable=false).
 2)
你的服务程序可以进行控制台间的交互。假设你的服务程序满足了如下条件:
public class ManagedWindowsService : System.ServiceProcess.ServiceBase
{
   // designer and user generated methods and properties
   public static int main(String[] args)
   {
      ServiceBase.Run( new MangedWindowsService() );
   }
}
也就是说类似与一个应用程序。只需要添加如下语句就可以对Onstart()方法进行调试了。
public static int main(String[] args)
{     
  (new ManagedWindowsService()).OnStart();
   ServiceBase.Run( new MangedWindowsService() );
}
 
 
原创粉丝点击