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",这告诉我没有读取参数。我哪里做错了。
谢谢,
要知道的关键是一个流程可以包含多个服务。
传递给Main
的参数通常用来指示进程做一些事情,比如安装自己,卸载自己,执行维护任务,或者进入服务控制循环(即调用ServiceBase.Run
)。
传递给OnStart
的参数来自服务控制管理器,而不是来自命令行。它们通常用于指示进程启动哪个进程(如果该进程管理多个服务)。
Main
参数被配置为"可执行路径"的一部分。
OnStart
参数在服务设置中配置为"启动参数"
您需要传递参数,否则args[0]为空。在调试模式下,进入项目设置,传递构建参数,检查它的工作情况