日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
C#Windows服務(wù)程序開(kāi)發(fā)的體會(huì)

C#Windows服務(wù)程序開(kāi)發(fā)是如何的呢?本文將較為詳細(xì)的介紹如何在.net下開(kāi)發(fā)Windows服務(wù)程序,并將簡(jiǎn)要介紹一些開(kāi)發(fā)中的調(diào)試技巧及后期的部署問(wèn)題.

創(chuàng)新互聯(lián)建站專(zhuān)注于扎蘭屯網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供扎蘭屯營(yíng)銷(xiāo)型網(wǎng)站建設(shè),扎蘭屯網(wǎng)站制作、扎蘭屯網(wǎng)頁(yè)設(shè)計(jì)、扎蘭屯網(wǎng)站官網(wǎng)定制、微信平臺(tái)小程序開(kāi)發(fā)服務(wù),打造扎蘭屯網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供扎蘭屯網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

IDE:VS2005, DotNetFramework Version:2.0.50727

Windows服務(wù)程序開(kāi)發(fā)的結(jié)果:Windows服務(wù)程序通常是一種在OS的后臺(tái)長(zhǎng)期運(yùn)行的程序,根據(jù)需要你可以設(shè)置為隨服務(wù)器啟動(dòng)而同時(shí)啟動(dòng)等等,在傳統(tǒng)的C/S結(jié)構(gòu)的程序開(kāi)發(fā)中,Windows服務(wù)更是以Server端普遍存在.在.NET應(yīng)用程序中,無(wú)論是Winform下的應(yīng)用還是ASP.NET,Windows服務(wù)也都非常重要,比如我們可以把一個(gè).Net Remoting服務(wù)端封裝在一個(gè)windows服務(wù)中,來(lái)達(dá)到穩(wěn)定提供服務(wù)的目的.

切入正題,首先我們來(lái)了解如何在VS下開(kāi)發(fā)基于.Net的windows服務(wù).

實(shí)際上,在VS下建立一個(gè)windows服務(wù)程序非常的簡(jiǎn)單,微軟幫我們做了80%的工作,我們所需要做的只是處理那20%的業(yè)務(wù)工作.

Windows服務(wù)程序開(kāi)發(fā)首先,我們建立一個(gè)Windows Service程序,VS提供了現(xiàn)成的項(xiàng)目模版,選擇Files->New->Project->Windows->Windows Service

之后,你將獲得兩個(gè)文件Service組件和Program.cs.我們要建立服務(wù)的話,首先需要添加專(zhuān)用的安裝組件,這步同樣很簡(jiǎn)單,選擇服務(wù)組件,并切換到設(shè)計(jì)模式,右鍵->Add Installer,生成了了安裝文件,切換到設(shè)計(jì)模式,這里你將看到兩個(gè)組件:ServiceInstaller和ProcessInstaller,這里沒(méi)有太多需要說(shuō)明的,大部分是對(duì)服務(wù)的名稱(chēng),描述等信息的設(shè)置,只有2個(gè)地方需要注意下.一個(gè)是StartType,有三種選擇自動(dòng),手動(dòng),禁用.如果想要自動(dòng)啟動(dòng),那么遍選擇Automatic即可.另一個(gè)需要注意的屬性是Account,選擇用戶,一般情況下,我們選擇Local System即可.

到現(xiàn)在,如果我們想要建立一個(gè)服務(wù),實(shí)際上已經(jīng)結(jié)束了,只需要在服務(wù)組件的OnStart和OnStop等函數(shù)中加上個(gè)人的業(yè)務(wù)處理.在Program.cs文件中,是如下代碼:

 
 
 
 
  1. static void Main()  
  2.  
  3. {  
  4.  
  5. ServiceBase[] ServicesToRun;  
  6.  
  7. // More than one user Service may run within the same process. To add  
  8.  
  9. // another service to this process, change the following line to  
  10.  
  11. // create a second service object. For example,  
  12.  
  13. //  
  14.  
  15. //   ServicesToRun = new ServiceBase[] {new Service1(), new MySecondUserService()};  
  16.  
  17. //  
  18.  
  19. ServicesToRun = new ServiceBase[]   
  20.  
  21. { new Service1() };  
  22.  
  23. ServiceBase.Run(ServicesToRun);  
  24.  

這段代碼用于啟動(dòng)服務(wù).

接下來(lái)的工作就是安裝服務(wù).你可以通過(guò)制作安裝包實(shí)現(xiàn),或者直接通過(guò)命令行來(lái)執(zhí)行安裝.

當(dāng)你編譯完項(xiàng)目后,你可以在bin/debug目錄下看到擴(kuò)展名為.exe的可執(zhí)行文件,這就是服務(wù)程序,但直接雙擊是無(wú)法運(yùn)行的,你需要通過(guò)特定的工具來(lái)安裝它,微軟提供給我們的工具就是installutil.exe.這個(gè)程序位于%SystemRoot%\Microsoft.NET\Framework\/%Version%\,version指的是.net版本號(hào).

安裝一個(gè)服務(wù)程序,我們是在命令行內(nèi)鍵入:installutil.exe  服務(wù)程序路徑.如果是要?jiǎng)h除某個(gè)服務(wù)則是installutil.exe /u 服務(wù)程序路徑.

執(zhí)行了安裝操作后,我們?nèi)タ刂泼姘?>管理工具->服務(wù)中就可以看到我們的服務(wù)程序了.

Windows服務(wù)程序開(kāi)發(fā)最后,談?wù)務(wù){(diào)試中的技巧.

編寫(xiě)這種Windows服務(wù)程序,調(diào)試起來(lái)非常的麻煩,而且每次有所變化后,還得頻繁的去執(zhí)行installutil和installutil /u命令,實(shí)際上,我們可以通過(guò)編寫(xiě)一些BuildEvents來(lái)大大簡(jiǎn)化這其中的煩瑣工作.這里,我們?cè)贐uildEvents編寫(xiě)如下事件:

 
 
 
 
  1. net stop YourServiceName  
  2.  
  3. copy /y "$(TargetDir)" "$(ProjectDir)bin" 
  4.  
  5. "%SystemRoot%\Microsoft.NET\Framework  
  6. \v2.0.50727\InstallUtil.exe" /u $(ProjectDir)bin\$(TargetFileName)  
  7.  
  8. "%SystemRoot%\Microsoft.NET\Framework\  
  9. v2.0.50727\InstallUtil.exe"  $(ProjectDir)bin\$(TargetFileName)  
  10.  
  11. net start YourServiceName 

Windows服務(wù)程序開(kāi)發(fā)簡(jiǎn)單解釋下:

停止當(dāng)前服務(wù)->把debug目錄下所有東西copy到bin目錄下->執(zhí)行反安裝操作->執(zhí)行安裝操作->啟動(dòng)服務(wù).

最后把該事件設(shè)置為OnSuccessfulBuild即可.

由于是服務(wù)程序,如果想要直接debug比較的麻煩,可以通過(guò)附加進(jìn)程來(lái)調(diào)試大多數(shù)代碼,但是如果想要調(diào)試OnStart和OnStop方法.則只能通過(guò)其他的項(xiàng)目來(lái)調(diào)試.具體見(jiàn)這篇文章的介紹.

實(shí)際上,我們可以直接在OnStart()方法中通過(guò)EventLog.WriteEntry("Hi,I'm wiseman");來(lái)向事件查看器中寫(xiě)入一些你感興趣的信息,很大程度上可以解決debug的問(wèn)題.

以上大致的介紹了下如何在.net下編寫(xiě)windows服務(wù)程序,以及一些相關(guān)的技巧.該文也是閱讀我之后的某些文章需要掌握的知識(shí),這個(gè)月我會(huì)盡量抽些時(shí)間多寫(xiě)幾篇有關(guān)Windows服務(wù)和企業(yè)服務(wù)以及Remoting技術(shù)綜合起來(lái)的應(yīng)用的文章。

C#Windows服務(wù)程序開(kāi)發(fā)的相關(guān)介紹內(nèi)容就到這里,希望對(duì)你學(xué)習(xí)和了解C#Windows服務(wù)程序開(kāi)發(fā)有所幫助。


分享標(biāo)題:C#Windows服務(wù)程序開(kāi)發(fā)的體會(huì)
路徑分享:http://www.dlmjj.cn/article/dpdcdgh.html