C# windows service
2020-11-23 08:57
标签:style blog class code java tar 领导来了封邮件:C# 创建 windows service ,扫描相应目录,并将扫描到文件使用DOS
命令方式调用第三方Ftp工具上传到Ftp服务器。 短短几句话,看了好几遍。分析之后,由于对这个之前没有接触,一步一步来。这里也写一篇,一来跟新人分享下,二来希望前辈拍砖指点。 1.创建windows Service 服务。 (这里参考http://blog.csdn.net/yysyangyangyangshan/article/details/10515035 前辈的博文,不过前辈的博文有两点没懂,一是安装代码,我不知道写在哪,也不知道利用什么事件触发调用它,所以安装的时候,用命令行手动安装了。二是当服务运行起来的时候,在运行目录下没有看到记录的文件,而是当我停止或者卸载服务的时候,在目录下有这个记录文件,因此也拜读了http://blog.csdn.net/xxj_jing/article/details/7542654
前辈的文章。) ServiceFtp.cs 的代码: 要做的方法放在OnStart()里面即可,当启动服务时就可调用。这边记录时间文件。新建一个类:CFileOpreation.cs
用于记录时间操作。 该类的代码完全参考前辈的(嘿嘿): 然后在ServiceFtp.cs中调用该类中的方法,代码如下: 这边服务写得差不多了,添加下安装程序: 项目中会出现Install的东西: 视图设计器的界面出现: 右键设置一下属性,这里启动方式前辈们一般都是设置为手动,我想试试自动有什么不一样,设为自动: 然后设置一下账户类型:localsystem。 到这就差不多了,生成项目,找到EXE文件,进行添加到服务面板,根据.NET 版本4.0 和2.0 的不同,4.0的同学: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe MyFtpService.exe 2.0的同学: C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe MyFtpService.exe 上面两行命令在控制台输入即可安装服务,之后在服务面板中就可以看到了,感觉很是亲切: 这是手动控制台安装方式,在网上逛逛,发现了“.bat”文件好像蛮好用的,果断试试: 在EXE文件目录建立两个文件,必须是以“.bat”作为文件格式,叫做安装服务.bat和卸载服务.bat 安装服务.bat代码(我的版本是4.0): C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe MyFtpService.exe 卸载服务.bat代码: C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe
/u MyFtpService.exe pause的作用:保持控制台窗口不关闭 这两个方便,双击下就安装/卸载好了。 运行下,一下是没有记录时间文件,可是我卸载服务后,却发现有,求指点: 上面写入时间已经完成,但是我还加了个扫描指定目录的代码: 调用一下该递归方法 扫描的目录文件中只能识别常见格式的文件,rar txt doc, VS 生成的这么多文件他一个都没扫出来。 接下来就要使用DOS 命令调用第三方Ftp 工具将扫描到的文件发送到Ftp服务器,热烈欢迎前辈们指点。 C# windows service,搜素材,soscw.com C# windows service 标签:style blog class code java tar 原文地址:http://www.cnblogs.com/shy-huang/p/3713890.html
public
ServiceFtp()
{
InitializeComponent();
}
protected
override
void
OnStart(
string
[] args)
{
}
protected
override
void
OnStop()
{
}
public class CFileOpreation
{
#region SaveRecord
/// 服务测试:写一个文件到本地
///
1 public ServiceFtp()
2 {
3 InitializeComponent();
4 //InitService();另一个测试使用
5 }
6
7 protected override void OnStart(string[] args)
8 {
9 IntialSaveRecord();
10 string strStart = "服务开启";
11 }
12
13 protected override void OnStop()
14 {
15 if (recordTimer != null)
16 {
17 //释放
18 recordTimer.Dispose();
19 }
20 string strStop = "服务停止";
21 }
22 protected override void OnContinue()
23 {
24 string strCtn = "服务继续运行";
25 base.OnContinue();
26 }
27 protected override void OnPause()
28 {
29 string strPause = "服务暂停";
30 base.OnPause();
31 }
32
33 ///
pause
pause
//root dir
const
string
strPath =
@"D:/DOS命令扫描目录"
;
//go through dir
private
void
ExploreDir(DirectoryInfo di)
{
//write dir name
Console.WriteLine(di.FullName);
//write file name
FileInfo[] files = di.GetFiles();
foreach
(FileInfo item
in
files)
{
Console.WriteLine(item.FullName);
}
// recursive do it
DirectoryInfo[] dirs = di.GetDirectories();
foreach
(DirectoryInfo d
in
dirs)
{
ExploreDir(d);
}
Console.ReadLine();
Program pp =
new
Program();
DirectoryInfo dir =
new
DirectoryInfo(strPath);
pp.ExploreDir(dir);
文章标题:C# windows service
文章链接:http://soscw.com/index.php/essay/22204.html