Topshelf 将用户名和密码传递给配置
Topshelf passing username and password to the configuration
我正在努力解决的一件事是使用用户名和密码注册服务。
我可以将用户名和密码硬编码到 RunAs 方法并注册服务,但显然不实用。
如果我
myservice.exe install start -username:Domain\username -password:itsAsecret
或
myservice.exe install start -username "Domain\username" -password "itsAsecret"
服务在本地系统下注册并启动运行。
如何将用户名和密码传递给:
configure.RunAs(username, password)
方法?
为了解决这个问题,我自己解析了命令行
然后我可以:
if (commandlineParameters.ContainsKey("username") && commandlineParameters.ContainsKey("password"))
configure.RunAs(commandlineParameters["username"], commandlineParameters["password"]);
else
configure.RunAsLocalSystem();
但我觉得这应该可行:
configure.ApplyCommandLine(string.Join(" ", args));
或者干脆
configure.ApplyCommandLine();
但是当我这样做时,服务被注册为本地系统
似乎问题出在安装的命令 "start" 上。
因此,要安装和启动服务,需要两个单独的命令。
myservice.exe install -username:Domain\username -password:itsAsecret
myservice.exe start
这意味着我可以摆脱我添加的解析代码并简单地
configure.ApplyCommandLine();
我正在努力解决的一件事是使用用户名和密码注册服务。
我可以将用户名和密码硬编码到 RunAs 方法并注册服务,但显然不实用。
如果我
myservice.exe install start -username:Domain\username -password:itsAsecret
或
myservice.exe install start -username "Domain\username" -password "itsAsecret"
服务在本地系统下注册并启动运行。
如何将用户名和密码传递给:
configure.RunAs(username, password)
方法?
为了解决这个问题,我自己解析了命令行 然后我可以:
if (commandlineParameters.ContainsKey("username") && commandlineParameters.ContainsKey("password"))
configure.RunAs(commandlineParameters["username"], commandlineParameters["password"]);
else
configure.RunAsLocalSystem();
但我觉得这应该可行:
configure.ApplyCommandLine(string.Join(" ", args));
或者干脆
configure.ApplyCommandLine();
但是当我这样做时,服务被注册为本地系统
似乎问题出在安装的命令 "start" 上。
因此,要安装和启动服务,需要两个单独的命令。
myservice.exe install -username:Domain\username -password:itsAsecret
myservice.exe start
这意味着我可以摆脱我添加的解析代码并简单地
configure.ApplyCommandLine();