有没有办法将命令行参数传递给通过mono-service调用的服务?所有命令行参数似乎都被mono-service吸收而不是传递给服务。
mono-service
的预期接口。
惯用的做法是使用 app.config 文件来包含 配置节(以 XML 格式)。
更新
那似乎很奇怪。 assebmblyArgs
[应为 assemblyArgs] 作为 activationAttributes
的一部分传递给 AppDomain.CreateInstanceAndUnwrap 方法 (String, String, Boolean, BindingFlags, Binder, Object[], CultureInfo, Object[])
,但在调用 OnStart
时被忽略了。
您可以尝试使用以下源代码编译修改过的 mono-service.exe
版本:
使用-r:System.ServiceProcess.dll -r:Mono.Posix.dll -unsafe
编译为mono-service.exe
更新1 取消之前的说法。从代码来看,您只需要在程序集名称后面传递选项即可。
这意味着以下内容应该符合您的期望:
mono-service -l:/root/service-lock MyService.exe /Param1 /Param2 bla.txt
OnStart
,而是传递到 Main
。让我测试一下,然后告诉你。 - David Pfeffermono-service service.exe /arg1 /arg2
,并将 {"/arg1", "/arg2"}
传递给 OnStart
的 string[] args
。 - christianliebel