从前写了个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 项目并选择“生成”。
这次又要写个服务,写好了流程,忽然忘记怎么弄成服务....
当时的又没有日志留下,只能摸了下象,幸好有经验,
这次快多了
下面就把过程弄下来,以后备考
第一步:当然是写好自己的业务逻辑
不管如何,业务逻辑总归有进入口的................
第二步:就是添加服务组件,安装程序
右击工程,选择添加组件--服务组件
然后在服务视图上右击,添加安装,就会多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 项目并选择“生成”。