【问题标题】:Question regarding creating windows service关于创建windows服务的问题
【发布时间】:2009-08-27 15:17:13
【问题描述】:

我有几个关于创建 Windows 服务的问题。 我已经创建了一个 Windows 服务。但是我得到了一个错误。 公共部分类 xyz : servicebase { 公共 xyz() { 初始化组件(); } }

它无法解析 InitializeComponent()。请问有什么原因吗? 我已将其设置为控制台应用程序而不是 Windows 应用程序。

【问题讨论】:

  • 对不起,“asp.net”标签恐怕不相关。
  • 对不起,您是说它工作作为控制台应用程序而不是 Windows 服务?
  • 我认为 alice7 正在尝试创建一个作为 Windows 服务运行的控制台应用程序。也许这就是问题所在?

标签: c# windows-services


【解决方案1】:

您使用了控制台应用程序模板?这是不对的,你必须做一些手动工作,比如创建 InitializeComponent() 方法。最好的解决方案是使用 Windows 服务应用程序模板创建一个新项目。有关完整说明,请参阅http://msdn.microsoft.com/en-us/library/zt39148a.aspx

【讨论】:

  • 是的,如果您已经编写了很多代码,那么重新创建一个新的 Windows 服务项目并将代码复制到正确的位置仍然不是那么繁琐。
  • @okw:代码?当您可以将代码移动到仅通过控制台应用程序和 Windows 服务的项目中时,为什么还要复制/粘贴?
  • 是的,从头开始创建 Windows 服务解决了上述问题。
【解决方案2】:

在您的项目中选择添加->新建项目->Windows 服务。为您的服务命名。

现在,将您正在使用的必要代码从您的控制台文件(我猜测缺少信息)导入到服务文件中。

所以,现在您的项目中将拥有一个有效的窗口服务组件。您可以删除旧的控制台文件。

不要忘记修改Program.cs中main中的代码:

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);
    }
}

【讨论】:

    【解决方案3】:

    如果您想从命令行运行以进行调试,请查看this answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      相关资源
      最近更新 更多