調試Windows Service 程式的一些心得

來源:互聯網
上載者:User

這兩周在用VS2005開發一個Windows Service程式。以前也協助同事調試過Service程式。但總的感覺是調試Windows Service要比調試Web Service麻煩一些。如果使用下面的一些技巧會使得調試容易一些:

1.使用 Visual Studio 2005 Command Prompt 運行命令要比使用安裝包效率高。它免去了製作安裝包,卸載,安裝等過程。

2.在Visual Studio 2005 Command Prompt下運行一下命令:

1)安裝Service: InstallUtil yourService.exe

2)卸載Service InstallUtil /u yourService.exe

如果 service在運行,該命令會嘗試停止Serive再卸載。

3)啟動Service Net start "Your Service"

"Your Service"是ProjectInstaller類裡 system.ServiceProcess.ServiceInstaller.ServiceName的值,它是你在Service管理器裡可以看到的Service名稱。

3.調試Service 啟動Visual Studio 2005,開啟你的yourService project.選擇菜單"Debug->Attach to Process..."。

在Attach to Process視窗裡attach yourSerice.exe。如果你看不到你的yourSerice.exe,請選中"Show processes from all users".這樣你才能看到以system帳號啟動並執行Service. 如果你已經設定了斷點,當Serice運行到你設定的斷點時,程式就會停下來等待你的調試。

4.為了能夠調試yourService.exe, yourService.exe必須是在Debug模式下編譯的。

5.關於Onstart()裡的代碼調試.

由於Windows Serice要求在30秒內啟動完成,而在Service啟動前,你在Attach to Process視窗裡是看不到它的。這裡寫代碼時有一個技巧--Onstare()裡設定System.Timers.Timer,然後用Timer來延遲啟動商務服務。延遲的時間由你進入調試狀態的時間來決定。可以設定為5秒。利用Timer延遲啟動商務服務還可以避免啟動時遇到長時間的商業處理邏輯而使Service啟動失敗。

在商務服務啟動後應停止Timer(設定Timer.Enable=false).

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.