Share via


HOW TO:偵錯 OnStart 方法

您可以逐步執行服務 (Service) 的執行個體來偵錯 Windows 服務的建構函式。 您可以藉由啟動服務,並將偵錯工具附加到服務處理序來偵錯 Windows 服務自身。 但是,若要偵錯 Windows 服務的 OnStart 方法,您必須加入幾行程式碼模擬該服務。 如需詳細資訊,請參閱 ServiceBase.OnStart

若要偵錯 OnStart 方法中的問題

  • 建立一個服務模擬 (例如一個主控台應用程式 (Console Application)) 來判斷問題出在何處。

    例如,假設您擁有一個像下面這樣的 Visual C# Windows 服務:

    public class ManagedWindowsService : System.ServiceProcess.ServiceBase 
    {
       //
       // designer and user generated methods and properties
       //
       public static int main(String[] args)
       {      
          ServiceBase.Run( new ManagedWindowsService() );
       }
    }
    

    加入下列幾行程式碼偵錯 OnStart 方法:

    public static int main(String[] args)
    {      
       (new ManagedWindowsService()).OnStart(); // allows easy debugging of OnStart()
       ServiceBase.Run( new ManagedWindowsService() );
    }
    

    此服務將不會在這個模式下執行,但是您可以偵錯 OnStart 方法,並驗證它的行為是否與預期相同。

如需詳細資訊,請參閱對 Windows 服務應用程式進行偵錯

請參閱

概念

偵錯工具安全性

其他資源

偵錯 Managed 程式碼