日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Visual Studio.net 2010 Windows Service 开发,安装与调试

發布時間:2023/12/18 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Visual Studio.net 2010 Windows Service 开发,安装与调试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???? 本示例完成一個每隔一分鐘向C:\log.txt文件寫入一條記錄為例,講述一個Windows Service 程序的開發,安裝與調試
??? 原程序,加文檔示例下載

????/Files/zycblog/SourceCode.rar

??? 目錄索引

??? 1? 開發工具

??? 2??開發過程?

??? 3? 安裝

??? 4? 開發調試

????5? 注意事項

??? 6? 參考資料

1.??????????? 開發工具

1.1?? Visual Stuo.net 2010

1.2?? Windows 7

?

2.??????????? 開發過程

2.2?? 打開Visual Studio.net 2010 ,C# 下邊新建Windows Service 程序,命名為FileOperation,保存在D:\study\目錄下邊,如下圖所示

?

2.3?? 點擊OK以后,展示出新建的項目如下圖所示

?

2.4 其中Program.cs 文件里的程序如下

?

代碼 using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.ServiceProcess;
using?System.Text;

namespace?FileOperation
{
????
static?class?Program
????{
????????
///?<summary>
????????
///?The?main?entry?point?for?the?application.
????????
///?</summary>
????????static?void?Main()
????????{
????????????ServiceBase[]?ServicesToRun;
????????????ServicesToRun?
=?new?ServiceBase[]?
????????????{?
????????????????
new?Service1()?
????????????};
????????????ServiceBase.Run(ServicesToRun);
????????}
????}

}

整個Service程序將從這里開始

默認情況下,VS會為你新建一個名為Service1的服務程序,右擊Service1.cs然后選擇View Code,打開服務程序的代碼窗,程序如下

?

代碼 using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Diagnostics;
using?System.Linq;
using?System.ServiceProcess;
using?System.Text;

namespace?FileOperation
{
????
public?partial?class?Service1?:?ServiceBase
????{
????????
public?Service1()
????????{
????????????InitializeComponent();
????????}

????????
protected?override?void?OnStart(string[]?args)
????????{

????????}

????????
protected?override?void?OnStop()
????????{
????????}
????}
}

?

?

其中OnStart(),OnStop() 根據你的需要寫入你在Service程序開始和停止的時候要干什么

?

2.5 既是要定時往C盤根目錄去新建一個文件夾,那就需要一個Timer,并且告知他一分鐘執行一次,加上Timer以后代碼如下

?

代碼
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Diagnostics;
using?System.Linq;
using?System.ServiceProcess;
using?System.Text;

using?System.Timers;

namespace?FileOperation
{
????
public?partial?class?Service1?:?ServiceBase
????{
????????
private?readonly?Timer?_MyTimer;
????????
public?Service1()
????????{
????????????InitializeComponent();
????????????_MyTimer?
=?new?Timer(1?*?60?*?1000);?//單位為分鐘
????????????_MyTimer.Elapsed?+=?_MyTimerElapsed;
????????}

????????
protected?override?void?OnStart(string[]?args)
????????{
?????????????_MyTimer.Start();
????????}

????????
protected?override?void?OnStop()
????????{
????????????_MyTimer.Stop();
????????}
????????
internal?void?_MyTimerElapsed(object?sender,?ElapsedEventArgs?e)
????????{
????????????
try
????????????{
????????????????
//添加往C盤新建文本文件的程序
????????????}
????????????
catch?(Exception?ex)
????????????{?}
????????}
????}
}

?

注意引用 : using System.Timers;

??????????? ???只要在internal void _MyTimerElapsed(object sender, ElapsedEventArgs e)?方法中添加你的程序即可

2.6?? 既是要文件操作,首先需要添加相關命名空間的引用,以方便你的代碼編寫

完了以后你的程序如下

?

代碼 ?internal?void?_MyTimerElapsed(object?sender,?ElapsedEventArgs?e)
????????{
????????????
try
????????????{
????????????????
//添加往C盤新建一個文本文件的程序
????????????????try
????????????????{

????????????????????
string?logFileName?=?@"C:\\log.txt";?//?文件路徑

????????????????????FileInfo?fileinfo?
=?new?FileInfo(logFileName);

????????????????????
using?(FileStream?fs?=?fileinfo.OpenWrite())
????????????????????{

????????????????????????StreamWriter?sw?
=?new?StreamWriter(fs);

????????????????????????sw.WriteLine(
"=====================================");

????????????????????????sw.Write(
"添加日期為:"?+?DateTime.Now.ToString()?+?"\r\n");

????????????????????????sw.WriteLine(
"=====================================");

????????????????????????sw.Flush();

????????????????????????sw.Close();
????????????????????}

????????????????}

????????????????
catch?(Exception?ex)
????????????????{

????????????????????
//??ex.ToString();

????????????????}


????????????}
????????????
catch?(Exception?ex)
????????????{?}
????????}

?

?

2.7?? 接下來就程序的安裝與調試,看以上新建目錄程序是否正常

?

3.??????????? 安裝

1.1?? 右擊Service1 選擇?View Desinger 打開設計視圖,右擊設計視圖的空白處選擇add Installer ,會為你新建ProjectInstaller.cs安裝項目文件,打開剛剛新建的ProjectInstaller.cs的設計視圖,單擊serviceInstaller1,在屬性窗口,將ServiceNmae 設置為FileOperation ,StartType 屬性設置為Automatic表示系統啟動后自動運行服務程序如下圖所示,serviceProcessInstaller1 Account屬性設置為LocalService

?

?

3.1?? 通過以上步驟以后,一個服務程序開發基本完成,你只需要把它安裝即可,選擇解決方案,生成解決方案,再打開你的方案位置文件夾下,看看你的Bin目錄,出現如下文件

FileOperation.exe

FileOperation.pdb

FileOperation.vshost.exe

FileOperation.vshost.exe.manifest

接下來要做的就是要把FileOperation服務程序安裝到你的系統當中去,依如下步驟打開Visual Studio.net 2010的命令行程序

如下圖所示

?

3.2?? 將命令行程序轉到你項目bin文件夾下如下圖所示

?

3.3?? 安裝和缷載Windows Service的命令分別是

installutil 服務程序.exe, installutil /u服務程序.exe

這里我先安裝項目,輸入如下命令

Installutil FileOperation.exe

將出現如下圖所示內容

?

最后內容將看到

The Commit phase completed successfully

the transacted install has completed

表示服務程序已經安裝完成

通過以下步驟打開服務窗口,你將看到名為FileOperation服務程序

開始->控制面版->系統與安全->管理工具->服務

你需要手動啟動服務,一段時間以后你將看到log.txt 文件里寫的信息

?

4.??????????? 開發調試

1.1?? Windows service 程序無法像其它程序那樣按F5去設置斷點來調試,需要采用附加進程的方式,依如下操作便加像平常一樣去調試程序了

Debug->Attach to process,選中剛剛開發好的FileOperation進程后,點擊attach,便可以設置斷點了,由于之前的程序是一分鐘執行一次寫文件操作,你每隔一分鐘將會收到一次調試,需要注意的是,你調試的程序一定要和你安裝的服務程序是完全一樣的。

5.??????????? 注意事項

?

?

6.?????? 參考文資料

http://msdn.microsoft.com/zh-cn/library/9k985bc9(v=VS.80).aspx?

?

轉載于:https://www.cnblogs.com/zycblog/archive/2010/07/02/1769676.html

總結

以上是生活随笔為你收集整理的Visual Studio.net 2010 Windows Service 开发,安装与调试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。