一个可以接受参数的c# windows服务

本文关键字:参数 服务 windows 一个 | 更新日期: 2023-09-27 18:16:22

问候!

是否有可能创建可以接受输入参数的windows服务(在visual studio 2008中)?如果是,是否有可能在需要时调用该特定方法?我已经创建了一个基本的windows服务,但不知道是否可以向它传递参数。

我知道我可以调用方法在特定的间隔基于定时器。但是,当调用来自外部程序时,是否可能调用该方法呢?

关于这些的任何有用的信息将是非常感激的。

谢谢塞巴斯蒂安。

一个可以接受参数的c# windows服务

serviceconcontroller . start()方法有一个重载,它接受一个字符串数组作为参数。见http://msdn.microsoft.com/en-us/library/9c38b683.aspx

我建议研究其他通信机制,比如WCF。更粗糙的解决方案包括将文件写入共享磁盘空间或注册表,我不建议使用这两种方法,尽管过去在生产系统中见过这两种方法。

OnStart()方法上,您接收到一个string[]参数。这些参数可以来自控制台启动方法。您还可以在配置文件app.configAppSettings上添加一些键,并在代码中读取它。

protected string FirstArg { get; set; }
protected string SecondArg { get; set; }
// read from configuration file
protected string ConfigArgument { get { return ConfigurationManager.AppSettings["key"]; } }
protected override void OnStart(string[] args)
{
    base.OnStart(args);
    // read from console
    FirstArg= args[0];
    SecondArg = args[1];
    //read more arguments
}

您也可以使用注册表来添加键