1. 關於windows service
windows服務是在win32作業系統上於背景中執行的程式。服務可以在電腦啟動時自動啟動,也可以暫停或重新啟動,且都不會顯示任何使用者介面;可以在登入windows作業系統的情況下使用。
2. 手動安裝
在命令列中,以您的專案輸出為參數執行 InstallUtil.exe。在命令列中輸入下列程式碼:
安裝:installutil WindowsService1.exe
卸載:installutil /u WindowsService1.exe
也可以程式安裝
創建windows程式安裝專案,添加建置好的windows service。刪除時可以使用安裝文件刪除也可以在控制台添加刪除面板中刪除。
3. 啟動服務
在服務管理器中啟動服務,作業系統會等候 30 秒,等待 OnStart 方法傳回。如果此方法沒有在這段時間內傳回結果,管理員會顯示服務無法啟動的錯誤(如下圖)。
我現在用的方法是啟動服務時,啟動一個線程。MainSub中將是要做的工作。
Protected Overrides Sub OnStart(ByVal args() As String)
Dim t1 As Thread = New Thread(AddressOf MainSub)
t1.Start()
End Sub
4. 不能在服務程式中出現等待用戶響應的情況(例如彈出對話框)這將導致服務程式的阻塞。
5. 無法安裝服務時
當無法安裝服務時,請查看是否有名稱相同的服務已經安裝了,因為服務名稱必須是唯一的,才能成功安裝。還有請確定該服務類別的 ServiceName 屬性是設定為與該服務的安裝程式中所顯示的設定值相同。這兩個執行個體中該屬性值必須相同,才能正確安裝您的服務。
6. 未解決的問題
為了能在伺服器上建立一個監聽程式,以響應客戶端的呼叫驅動伺服器上的DataStage。在伺服器上使用TcpListener使用端口13000。服務啟動時就會進入循環監聽,然而在停止服務後,使用netstat命令查看發現13000端口仍被占用,直到10多秒後才釋放。這樣導致重啟服務或者停止服務後立即啟動服務會出錯(端口占用)。我在服務停止事件中中止線程,但問題還是未能解決。
浙公网安备 33010602011771号