繁体   English   中英

如何将参数传递给Windows服务

[英]How to pass in arguments to Windows service

我正在尝试将参数传递给Windows服务,但OnStart方法中的args始终为空。

protected override void OnStart(string[] args)
        {
            System.Diagnostics.Debugger.Launch();
        }

我在同一台计算机上安装了多个服务实例。 每个人都应使用不同的配置,以便获得服务名称并根据该名称读取正确的配置。

您是否通过服务小程序传递参数? 服务不能接受命令行参数,而必须通过“计算机管理”窗口中的服务小程序传递。

如果需要服务名称,为什么不只看ServiceBase.ServiceName呢?

protected override void OnStart(string[] args)
{
    switch (this.ServiceName)
    {
        // ....
    }
}

您可能还想考虑一种不基于服务名称的设计,该服务名称可以在系统中轻松更改。

使用设置文件(右键单击,添加项目,设置),该文件将自动生成应用程序配置文件。 然后,在每个实例的容器中,可以在配置中设置值-如果要在不同位置运行它们。

如果有多个服务实例在一个位置用完,则配置文件方法将无法正常工作。 在这种情况下,我建议您使用带main(string[] args)方法的常规exe,然后在Windows中使用Task Scheduler定义参数和计划。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM