2015-10-28 112 views
-1

我使用c#創建了Windows窗體應用程序。現在我需要添加一個Windows服務以及這個應用程序。我添加了一個新的Windows服務並添加了安裝程序。我創建了Windows安裝程序並將其安裝在PC中,但該服務無法正常工作。我是C#的新手。請幫助我將此服務添加到安裝程序。Windows窗體應用程序中的Windows服務

+0

「但該服務無法正常工作」 - 我們如何幫助您而不提供更多信息? –

+0

你開始服務了嗎?你怎麼知道它不工作?我們需要的方式更多信息 – Pavenhimself

+0

大家好,感謝您的回覆,基本問題是我是C#的初學者。我結合了來自互聯網的代碼。我的要求是,當沒有互聯網時,數據將被存儲在一個文件中。我正在使用Windows窗體處理這部分內容。現在我需要一個服務來檢查互聯網連接,當互聯網可用時,它會自動將文件上傳到網絡服務。 –

回答

0

WinForms應用程序和Windows服務項目模板具有不同的引導代碼(請參閱項目中的「Program.cs」文件)。

這一個從Windows窗體:

Application.EnableVisualStyles(); 
Application.SetCompatibleTextRenderingDefault(false); 
Application.Run(new Form1()); 

這一個從Windows服務:

ServiceBase[] ServicesToRun; 
ServicesToRun = new ServiceBase[] 
{ 
    new Service1() 
}; 
ServiceBase.Run(ServicesToRun); 

如果你想將這些類型的應用程序在一個單一的可執行文件合併,則需要修改引導代碼一點:

// we need command line arguments in Main method 
[STAThread] 
static void Main(string[] args) 
{ 
    if (args.Length > 0 && args[0] == "service") 
    { 
     // runs service; 
     // generated bootstrap code was simplified a little 
     ServiceBase.Run(new[] 
     { 
      new Service1() 
     }); 
    } 
    else 
    { 
     // runs GUI application 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

現在,安裝服務時,需要設置命令用於運行可執行文件的行參數:myExe service