C#.net 服务

从前写了个C#.net 邮件读取解析客户端,
这次又要写个服务,写好了流程,忽然忘记怎么弄成服务....
当时的又没有日志留下,只能摸了下象,幸好有经验,
这次快多了
下面就把过程弄下来,以后备考

第一步:当然是写好自己的业务逻辑
不管如何,业务逻辑总归有进入口的................

第二步:就是添加服务组件,安装程序
            右击工程,选择添加组件--服务组件
             然后在服务视图上右击,添加安装,就会多2个组件:serviceInstaller和serviceProcessInstaller
第三步:编写ServiceBase类
            编写一个类,继承ServiceBase,然后重写OnStart,OnStop等函数我得写例子如下
看累了么,看看小说: 挖小说

using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceProcess;
using System.Threading;
using System.Collections;
namespace NBDNewsRead
{
    class NBDServiceHandle : ServiceBase
    {
        Thread thread ;
        public NBDServiceHandle(){           
            thread = new Thread(new ThreadStart(run));        
      
        }
        protected override void OnStart(string[] args)
        {
            CSharpLog.Log(DateTime.Now.ToString() + " 正在启动NBD新闻下载服务...");
            thread.Start();
            CSharpLog.Log(DateTime.Now.ToString() + " NBD新闻下载服务启动成功!");
        }

        protected override void OnStop()
        {
            try
            {
                thread.Abort();
                CSharpLog.Log(DateTime.Now.ToString() + " 停止NBD新闻下载服务");
            }
            catch
            {
            }
        }
        private void run()
        {
            Boolean flag = true;
            while (flag)
            {
             ...................................

                Thread.Sleep(60 * 60 * 1000);

            }
        }
    }
}

第三步:编写入口类,这个入口,怎么说呢,按照我的理解就是一个注册关联的意思,我写的例子如下

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.ServiceProcess;
namespace NBDNewsRead
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        //[STAThread]
        static void Main()
        {         
           ServiceBase[] myServices;          
           myServices=new ServiceBase[]{new NBDServiceHandle()};
           ServiceBase.Run(myServices);
        }
    }
}

第四步:编辑安装配置

这个简单,打开安装视图,右击serviceInstaller和serviceProcessInstaller属性,然后编辑就是了

第五步 :安装服务
     生成exe,利用vs2005.net的自带命令installutil工具
     输入installutil c:/eg.exe
    卸载:InstallUtil c:/eg.exe -u
    看看提示,成功就ok,不成功google去,看那个环节或者细节出问题了
     ---------------------------------------------------------------------------------------------------------------
如下摘自MSDN,如何为C#.net服务打包

  为服务创建安装项目    
   
  在“文件”菜单上指向“添加项目”,然后选择“新建项目”。    
  在“项目类型”窗格中选择“安装和部署项目”文件夹。    
  在“模板”窗格中选择“安装项目”。将项目命名为   MyServiceSetup。    
  安装项目随即添加到解决方案。    
   
  然后,将   Windows   服务项目的输出   MyNewService.exe   添加到安装项目中。  
   
  向安装项目添加   MyNewService.exe    
   
  在解决方案资源管理器中,右击“MyServiceSetup”,指向“添加”,然后选择“项目输出”。    
  出现“添加项目输出组”对话框。    
   
  在“项目”框中选择“MyNewService”。    
  在列表框中,选择“主输出”,然后单击“确定”。    
  MyNewService   的主输出的项目项被添加到安装项目中。现在添加自定义操作以安装   MyNewService.exe   文件。    
   
  向安装项目添加自定义操作    
   
  在解决方案资源管理器中右击安装项目,指向“视图”,然后选择“自定义操作”。    
  出现自定义操作编辑器。    
   
  在“自定义操作”编辑器中右击“自定义操作”节点,然后选择“添加自定义操作”。    
  出现“选择项目中的项”对话框。    
   
  在列表框中双击“应用程序文件夹”将其打开,选择“主输出来自   MyNewService(活动)”,然后单击“确定”。    
  主输出被添加到自定义操作的所有四个节点,即“安装”、“提交”、“回滚”和“卸载”。    
   
  在解决方案资源管理器中,右击   MyServiceSetup   项目并选择“生成”。 
         
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值