Win服務程式編寫以及安裝一般步驟

2022-01-13 14:01:25 字數 3844 閱讀 4778

win服務程式編寫以及安裝一般步驟

windows服務的優點有:1. 能夠自動執行。2. 不要求使用者互動。3. 在後台執行。本文將介紹常見服務程式編寫的一般步驟以及注意事項。

設計服務程式例項:

建立服務程式,主要功能:隔段時間自動寫入字串到文字文件中。

使用語言:vb.net,開發工具:visual studio 2010

如圖1所示:

圖1 圖2

圖3 system.windows.forms中的time元件在服務程式中部適用,所以此處要選擇system.timers.timer。

繼續圖3操作後設定timer以及service1的屬性.如圖4/5。

圖4

圖5

圖6 **如下:

1

protected

overrides

sub onstart(byval args() as

string)2

3'請在此處新增**以啟動您的服務。此方法應完成設定工作,45

'以使您的服務開始工作。67

timer1.start()89

end sub

1011

1213

protected

overrides

subonstop()

1415

'在此處新增**以執行任何必要的拆解操作,從而停止您的服務。

1617

timer1.stop()

1819

end sub

2021

2223

private

sub timer1_elapsed(byval sender as system.object, byval e as system.timers.elapsedeventargs) handles

timer1.elapsed

2425

dim witer as streamwriter = new streamwriter("

c:\string.txt

", true)26

27 witer.writeline("

yourtext")

2829

witer.close()

3031

end sub

或者基於filestream寫入,**如下:

圖7 圖7操作後出現如圖8介面,設定安裝控制項屬性如圖9和圖10

圖8圖9

圖10

.net編寫服務程式整合了許多的功能,此處建立服務安裝,並不需要編寫程式,只需新增控制項,修改屬性即可,十分方便。

編譯會出現警告,如圖11,但程式沒出先錯誤,檢視c:\出現"string.text"文件,裡面寫入了文字。

圖11

啟動vs命令提示符視窗。如圖12

圖12

安裝

注意要以管理員身份執行

windows服務安裝異常:system.security.securityexception: 未找到源,但未能搜尋某些或全部事件日誌。不可 訪問的日誌: security。解決辦法,以管理員身份執行即可。

輸入**:

圖13解除安裝

installutil/u c:\users\h\desktop\timetest_windowsservice\timetest_windowsservice\bin\debug\timetest_windowsservice.exe

圖14預設情況下,windows服務基於安全考慮,是不允許任何服務程式和桌面進行互動的。也就是說,使用任何的windows form 的很多特性將會莫名奇妙的不起作用,如進行messagebox的顯示,啟動另一程序,諸如:開啟某個pdf格式的檔案,者使用system.windows.form.timer物件也不行,這種不起作用表現在沒有進行服務程式安裝的情況下除錯的時候會提示無法啟動服務需要安裝的警告,但是 messagebox仍會顯示,pdf格式的文件仍會開啟;奇怪的是,在安裝後,啟動服務程式後,messagebox以及pdf格式的文件均不會打,開程式將沒任何的響應。由於windows服務具有難以除錯的特點,如果不注意這點,你反覆檢查自己的**,都很難發現問題的所在的。

但也並不是說不能編寫複雜的互動式服務程式,只是涉及到的知識會更複雜一些,通常會用涉及到一些windows api介面的操作。本文旨在說明服務程式編寫的一般步驟,對於複雜的互動服務程式,其一般流程大致相同,網上已有大神在此有詳細的解釋說明。可參考部落格:

,裡面有很詳細的介紹。

zz Unix下編寫Socket程式一般步驟

unix下編寫socket程式的一般步驟 ackarlix 理解幾個常用的socket函式 include include int socket int domain,int type,int portocol domain指所使用的協議族 family 可以為af unix和af inet,一般只...

一般處理程式

一般處理程式是乙個字尾名為.ashx的 檔案,該檔案的類實現了ihttphandler介面,這個類用於負責處理它所對應的url的訪問請求,並接受客戶端傳送的請求資訊和傳送響應內容 get和post的請求方式 get和post是向伺服器傳送請求的兩種方式,其中get請求是將需要提交給伺服器端的資料放在...

一般處理程式

一般處理程式 httphandler 是乙個實現system.web.ihttphandler特殊介面的類。任何乙個實現了ihttphandler介面的類都能作為乙個外部請求的目標程式。它由支援asp.net的伺服器軟體呼叫和啟動執行。乙個httphandler程式負責處理它對應的乙個活一組url位...