2014年6月10日 星期二

[C#] Windows Service Code Debug method

C# service Debug 方法 原始出處

個人採用方法三

只需加一些程式碼判斷與獨立使用即可!


在主要Service程式中獨立的 Start 與 Stop
public void Start(string[] args)
{
    this.OnStart(args);
}

public void Stop()
{
    this.OnStop();
}  

Program.cs中需新增的判斷
 if (Environment.UserInteractive)
 {
     Service1 s = new Service1();
     s.Start(null);
     Console.WriteLine("服務已啟動,請按下 Enter 鍵關閉服務...");
    // 必須要透過 Console.ReadLine(); 先停止程式執行
    // 因為 Windows Service 大多是利用多 Thread 或 Timer 執行長時間的工作
    // 所以雖然主執行緒停止執行了,但服務中的執行緒已經在運行了!
    Console.ReadLine();
    s.Stop();

    Console.WriteLine("服務已關閉");
 }
 else
{
   //原有程式碼
}

最後在專案的property裡設置輸出類型(Output Type),選擇 
Console Application

沒有留言:

搜尋此網誌