日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

C# 開發(fā)windows 服務(wù)

系統(tǒng) 2420 0
一、Windows Service 服務(wù),可以在用戶未登錄的時候開始運行提供服務(wù)(下圖)

C# 開發(fā)windows 服務(wù)

二、開始建立一個Windows 服務(wù)

1.打開VS2008 新建一個Windows 服務(wù)項目

C# 開發(fā)windows 服務(wù)

系統(tǒng)會默認的建立一個

Program.cs 是啟動文件,里面有如下代碼用來啟動服務(wù)
    
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new Service1() 
            };
            ServiceBase.Run(ServicesToRun);
        }

  



2.Service1.cs 服務(wù)類。繼承自System.ServiceProcess.ServiceBase

右鍵點擊此文件,點擊“查看代碼”,打開類代碼視圖可以找到幾個重載方法

C# 開發(fā)windows 服務(wù)

OnStart方法來響應(yīng)啟動服務(wù)的事件

OnStop方法來響應(yīng)停止服務(wù)的事件

OnPause方法來響應(yīng)暫停服務(wù)的事件

OnContinue方法來響應(yīng)恢復(fù)提供服務(wù)的事件

在重載這些方法時必須要立即返回,其中不能出現(xiàn)長時間的操作,若處理時間過長則Windows服務(wù)管理器會覺得該Windows服務(wù)停止響應(yīng)而報錯。

3.在“設(shè)計器視圖”右鍵,會看到一個添加“添加安裝程序”,添加一個ProjectInstaller.cs

C# 開發(fā)windows 服務(wù)

ProjectInstaller.cs? 安裝服務(wù),繼承自System.Configuration.Install.Installer,該類用于配合微軟.NET框架自帶的安裝命令行工具InstallUtil.exe

將此文件的serviceProcessInstaller1->Accout屬性,設(shè)為:LocalSystem(默認是User)。


4.現(xiàn)在要實現(xiàn)點小功能來學(xué)習(xí)一下Windows 服務(wù),

功能是簡單實現(xiàn):每隔5秒向SQL數(shù)據(jù)庫插入一條數(shù)據(jù),然后將SQL語句記錄到指定的TXT文件中做日志,

可以將寫好的功能組件引用進來使用,如果沒有可以簡單的新建類庫項目,打開默認的Class1.cs文件,寫以下幾句代碼


    
namespace ClassLibrary1
{
    public class Class1
    {
        public static void Test()
        {
            LogService ls = new LogService();
            ls.InitLog("WindowsService", "d:\\log\\");
            ls.WriteLog(" -------------------------------" + DateTime.Now.ToString() + "------------------------------------------");
            try
            {
                using (SqlConnection cn = new SqlConnection("Data Source=192.168.1.20;Initial Catalog=TestWindowsService;User ID=sa;Password=saaaaa"))
                {
                    cn.Open();
                    using (SqlCommand cm = cn.CreateCommand())
                    {
                        cm.CommandType = CommandType.Text;
                        cm.CommandText = "INSERT INTO T_Test (InsertTime) VALUES (@insertTime)";
                        cm.Parameters.AddWithValue("@insertTime", DateTime.Now.ToString());
                        cm.ExecuteNonQuery();
                        ls.WriteLog("操作成功!SQL語句:" + cm.CommandText);
                    }
                }
            }
            catch (Exception ex)
            {
                ls.WriteLog("操作失敗:" + ex);
            }
        }
    }
}

  



將類庫項目引用到服務(wù)項目中來,添加一個System.Timers下的Timer控件,在Elapsed事件中就可以直接調(diào)用

5.手動安裝:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe? FilePath\xx.exe

這個FilePath,就是程序文件夾中Debug目錄先的? 項目名.exe? 文件 ,我一直是默認建的,所以這里是WindowsService1.exe

C# 開發(fā)windows 服務(wù)

安裝成功,會在本文的第一個圖片位置找到服務(wù)名為Service1的服務(wù)選項,手動的啟動它一下,可以在D:\log下看到日志


6.卸載:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -u FilePath\xx.exe

C# 開發(fā)windows 服務(wù)

卸載后頁面中沒有了圖片中的服務(wù)

7.最后:

可以為Windows 服務(wù)添加客戶端,也可以在啟動程序中編寫不使用 InstallUtil.exe? 的安裝,這些都可以在完成功能的時候加上,方法網(wǎng)上可以找到。

調(diào)試服務(wù)可以使用附加進程的方式,也可以直接將功能組件開發(fā)好調(diào)用或者是設(shè)置調(diào)試線程等方法進行調(diào)試,也可以建立測試調(diào)試。

C# 開發(fā)windows 服務(wù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 龙游县| 洛川县| 滁州市| 云安县| 明水县| 连城县| 夏津县| 德化县| 义乌市| 永清县| 文昌市| 海伦市| 枞阳县| 静乐县| 临桂县| 元江| 婺源县| 盐源县| 武平县| 滁州市| 新安县| 华池县| 崇明县| 上林县| 赤城县| 镇江市| 开封市| 桂林市| 内乡县| 宜章县| 保靖县| 浦县| 泽州县| 隆林| 四子王旗| 民丰县| 蕲春县| 衡水市| 新安县| 恭城| 瓦房店市|