c# service:我无法在服务启动时传递一个参数

本文关键字:参数 一个 启动 service 服务 | 更新日期: 2023-09-27 17:51:20

我正在VS 2015中编写一个c#服务,我需要在服务启动时传递一个参数。我这样输入参数:输入图片描述

和我的代码在服务中看起来像这样

protected override void OnStart(string[] args)
{
   System.Diagnostics.Debugger.Launch();
   try
   {
       base.OnStart(args);
       WriteToFile("args = " + args[0].ToString());

当我启动服务时,我得到以下错误:"Index was outside the bounds of the array",这告诉我没有读取参数。我哪里做错了。

谢谢,

c# service:我无法在服务启动时传递一个参数

要知道的关键是一个流程可以包含多个服务。

传递给Main的参数通常用来指示进程做一些事情,比如安装自己,卸载自己,执行维护任务,或者进入服务控制循环(即调用ServiceBase.Run)。

传递给OnStart的参数来自服务控制管理器,而不是来自命令行。它们通常用于指示进程启动哪个进程(如果该进程管理多个服务)。

Main参数被配置为"可执行路径"的一部分。

OnStart参数在服务设置中配置为"启动参数"

您需要传递参数,否则args[0]为空。在调试模式下,进入项目设置,传递构建参数,检查它的工作情况