2009-08-27 113 views
0

關於創建Windows服務我有幾個問題。 我已經創建了一個Windows服務。但我得到一個錯誤重新編寫。 public partial class xyz:servicebase { public xyz() { InitializeCompoenent(); } }關於創建Windows服務的問題

它無法解析InitializeComponent()。是否有人有任何理由。 我已經將其設置爲控制檯應用程序而不是Windows應用程序。

+0

對不起,恐怕標籤「asp.net」不相關。 – 2009-08-27 15:19:34

+0

@ o.k.w。修復它 – 2009-08-27 15:21:41

+1

對不起,你是說它*作爲控制檯應用程序而不是Windows服務? – 2009-08-27 15:22:40

回答

2

您使用了控制檯應用程序模板?這是不對的,你將不得不做一些手動工作,如創建InitializeComponent()方法。最好的解決方案是使用Windows服務應用程序模板創建一個新項目。有關完整說明,請參閱http://msdn.microsoft.com/en-us/library/zt39148a.aspx

+0

是的,如果您已經編寫了很多代碼,那麼重新創建一個新的Windows服務項目並將代碼複製到正確的位置並不麻煩。 – 2009-08-27 15:28:13

+0

@okw:密碼?爲什麼在將代碼移動到僅由控制檯應用程序和Windows服務提供的項目中時進行復制/粘貼? – Amy 2009-08-28 18:24:24

+0

是從頭開始創建一個Windows服務解決了上述問題。 – alice7 2009-08-28 19:44:36

0

在您的項目上選擇Add-> New item-> Windows Service。給你的服務命名。

現在,從您的控制檯文件(我從缺乏信息猜測)導入您使用的必要代碼到服務文件。

因此,現在您的項目中將有一個有效的窗口服務組件。您可以刪除舊的控制檯文件。

不要忘記修改主代碼中的Program.cs:

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     ServiceBase[] ServicesToRun; 
     ServicesToRun = new ServiceBase[] 
     { 
      new YourService(); 
     }; 
     ServiceBase.Run(ServicesToRun); 
    } 
} 
0

如果你想在命令行調試目的運行,然後檢查了這一點this answer