2017-06-07 41 views
0

我使用c#來創建Windows服務,但安裝後,它不起作用 ,它在日誌中什麼也沒有顯示,所以我不明白解決它的錯誤 。 Error which is appearedWindows服務未啓動

這是我在啓動事件

 protected override void OnStart(string[] args) 
     { 
      StartSynchro(); 
     } 
     public void StartSynchro() 
     { 
      while (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable()) 
      { 
       System.Threading.Thread.Sleep(TimeSpan.FromHours(1)); 

      } 
      GoogleDriveHandler driveHandler = new GoogleDriveHandler(); 
      List<Google.Apis.Drive.v3.Data.File> onlineFiles = driveHandler.getFiles(); 
      Google.Apis.Drive.v3.Data.File onlineVerCSVFile = onlineFiles.Where(c => c.Name == GoogleDriveHandler.onlineVerCSV).First(); 
      onlineFiles.Remove(onlineVerCSVFile); 
      List<KeyValuePair<string, string>> result = Helper.ReadFromMemoryStream(driveHandler.downloadfile_GetStream(ref onlineVerCSVFile)); 
      List<string> corspondingVer = new List<string>(); 
      foreach (var onlineFile in onlineFiles) 
      { 
       corspondingVer.Add(result.Find(c => c.Key == onlineFile.Name).Value); 
      } 

      List<Google.Apis.Drive.v3.Data.File> fileToDownload = LocalClasses.LocalFilesInfo.getFilesToDwonload(onlineFiles, corspondingVer, ref driveHandler); 
      driveHandler.StartDownloading(fileToDownload); 
      return; 
     } 
+3

OnStart重寫如何看起來像? –

+1

查看事件查看器中的任何異常詳情。 –

+0

@AlexK。事件查看器是什麼意思? –

回答

1

最好是儘可能快地啓動Windows服務。您可以將初始化代碼移動到單獨的線程,如下所示:

protected override void OnStart(string[] args) 
{ 
    Task.Run(() => StartSynchro()); 
} 
+0

好,但我有其他問題,我如何創建目錄到這個Windows服務中的用戶文件? –

+0

你應該能夠做到這一點,一旦你開始與管理員權限的Windows服務! – ashin