CVS2010創(chuàng)建安裝調(diào)試windows服務(wù)windowsservice_第1頁
CVS2010創(chuàng)建安裝調(diào)試windows服務(wù)windowsservice_第2頁
CVS2010創(chuàng)建安裝調(diào)試windows服務(wù)windowsservice_第3頁
CVS2010創(chuàng)建安裝調(diào)試windows服務(wù)windowsservice_第4頁
CVS2010創(chuàng)建安裝調(diào)試windows服務(wù)windowsservice_第5頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、C# VS 2010 創(chuàng)建、安裝、調(diào)試 windows 服務(wù)(windows service)在一個應(yīng)用程序中創(chuàng)建多個 windows服務(wù)的方法和1083錯誤的解決方法法添加服務(wù)安裝成功 后自啟動功能1. 創(chuàng)建windows服務(wù)項目文件- 新建項目- 已安裝的模板- Visual C# - windows ,在右側(cè)窗口選擇windows服務(wù)2. 系統(tǒng)已經(jīng)為我們建立了一個Service1.cs組件,測試時我們就用它了如果要新件的話,右鍵項目- 添加- 新建項- windows服務(wù)。3. 在Service1.cs上,按F7 (右鍵查看代碼),打開代碼頁。加入我們測試 用的代碼。注意:下面的幾個方法

2、中的 str變量,為了我們一會兒調(diào)試時設(shè)置斷點用的!using System;using System.Diag no stics;using System.ServiceProcess;n amespace Win dowsService1public partial class Service1 : ServiceBasepublic Service1()In itializeComp onen t();In itService();/ III初始化服務(wù)參數(shù)/ private void In itService()base.AutoLog = false;base.Ca nShutdow

3、n = true;base.Ca nStop = true;base.Ca nPauseA ndCo ntinue = true;base.ServiceName = Service1;這個名字很重要,設(shè)置不一致會產(chǎn)生1083錯誤哦!protected override void OnStart(string args)string str =服務(wù)開啟;protected override void On Stop()string str =服務(wù)停止;protected override void OnContinu e()string str =服務(wù)繼續(xù)運(yùn)行;base. OnCon ti n

4、u e();protected override void On Pause()string str =服務(wù)暫停;base. On Pause();4. 建立服務(wù)的 安裝程序”4.1雙擊” Service1.cs,打開Service1.cs的視圖設(shè)計器4.2在視圖設(shè)計器中任意位置右鍵,選擇”添加安裝程序“4.3這時項目跟目下將出現(xiàn)一個 Project In staller.cs 的組件(如果是第一次添加”安裝程序的話)4.4 雙擊 ProjectInstaller.cs 打開 ProjectInstaller的視圖設(shè)計器4.5找到service In stallerl 組件,選中后按 F4鍵,

5、設(shè)置組件屬性。Descriptio n=測試服務(wù) 1 ”;DisplayName= “ Service1ServiceName= “Service1 ;”/這個值必須和 Win dowsService1.l nitService()方 法下設(shè)置的base.ServiceName 屬性一至。StartType為服務(wù)運(yùn)行類型,根據(jù)你的需要設(shè)置即可。(Manual :手動啟動,AutoMatic為自動啟動)4.6找到serviceProcessInstaller1組件,選中后按 F4鍵,設(shè)置組件屬性。Account= “LocalSystem;” /設(shè)置為其他的屬性在開啟服務(wù)時,會提示輸入用 戶名和

6、密碼4.7這樣就完成了一個服務(wù)的所有準(zhǔn)備,下面就是安裝和測試工作。5. 生成組件右鍵項目,選擇生成6. 安裝組件6.1使用InstallUtil.exe工具注冊組件服務(wù),文件位置在不同版本的framework中。我用的是4.0所以在一下位置C:Wi ndowsMicrosoft.NETFrameworkv4.0.30319l nstallUtil.exe6.2打開生成目錄,如果生成成功會有一個WindowsService1.exe 文件6.3在生成目錄根目錄下新加兩個bat (批處理文件),用于安裝和卸載服務(wù)新建一個文本文件,打開文件加入以下兩行命令C:Wi ndowsMicrosoft.NE

7、TFrameworkv4.0.30319l nstallUtil.exeWin dowsService1.exepause保存后關(guān)閉文本文件,之后將其重命名為 安裝服務(wù).bat文件,注意要修改后綴 名為.bat!再新建一個文本文件,打開文件加入以下兩行命令C:Wi ndowsMicrosoft.NETFrameworkv4.0.30319l nstallUtil.exe /uWin dowsService1.exepause保存后關(guān)閉文本文件,之后將其重命名為 卸載服務(wù).bat文件,注意要修改后綴 名為.bat!6.4安裝服務(wù).bat文件,安裝windows服務(wù)7. 安裝成功后需要手動開啟服務(wù)

8、,因為我們剛設(shè)置 serviceI nstaller1.StartType 為 Manual打開windows服務(wù)管理器,找到名為 Service1的服務(wù),右鍵屬性。點擊【啟 動】按鈕8. windows 調(diào)試8.1回到開發(fā)環(huán)境,選擇調(diào)試-附加到進(jìn)程,勾選”顯示所有用戶進(jìn)程“8.2找到 WindowsService1.exe 進(jìn)程(如果沒有點擊下刷新按鈕),選中后點擊附加到進(jìn)程”按鈕。8.3選中Service1.cs文件,后按F7打開代碼視圖8.4在所有str變量上添加調(diào)試斷點8.5回到windows服務(wù)管理器,找 Service1服務(wù)并選中它,在左側(cè)有一個 暫 ?!卑粹o。點擊一下這時,On

9、Pause方法下的斷點命中! 0K達(dá)到了調(diào)試的目的了9. 如果想一次安裝多個服務(wù),需要按照25的步驟多添加幾個服務(wù)就好了!問題及解決方案注冊成功后,啟動 Windows服務(wù) 時遇到錯誤:1083的解決辦法1. 查看Main()方法中是否啟動了指定的服務(wù)ServiceBase ServicesToR un;ServicesToR un = new ServiceBasenew Service1(),new Service2() /如果建立多個服務(wù)需要添加這段代碼;ServiceBase.R un (ServicesToRu n);2. 確保 ProjectInstaller.es 視圖設(shè)計器中的 serviceInstaller1 組件的 ServiceName 屬性與 Service1.cs 組件的 ServiceName 屬性一致添加服務(wù)安裝成功后自啟動功能1. 打開 ProjectInstaller.es 視圖設(shè)計器,選中serviceInstallerl 組件2. 打開serviceInstallerl組件的事件窗口,雙擊 Afterlnstall事件3. 在serviceInstaller1_Afterlnstall事件方法下添加如下代碼System.ServiceProcess.ServiceController sc = new System.Ser

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論