我的应用程序通过存储过程调用一个存储过程,我使用NET START命令调用Windows服务,如下所示:
SELECT @Cmd = 'Net Start ServiceName /"' + @param1 + '" /"' + @param2 + '"'
现在通过这里传递的参数没有达到OnStart方法。 这些值是空白的。
Protected Overrides Sub OnStart(ByVal args() As String) Try service1= New Service service1.param2 = args(1) service1.param1 = args(0)
在这里,我将args(0)作为服务的名称而不是传递的值, args(1)是空白的。 尽pipeargs.Getlength(0)返回2。
服务启动成功,它调用可执行文件,但参数不存在。
可能是什么原因?
NET START命令中可能需要pipe理访问权限? NET START命令的语法是否已更改? 同样的事情在Windows Server 2003上运行良好。
NET START不支持传递参数。 编辑:其实它显然确实传递参数在某些情况下,如你所说。 我怀疑NET START命令的这种行为是偶然的,而不是由devise,这就是为什么它不再有效,为什么行为没有提到这里
尝试sc start而不是这个答案在这里
sc start也正式支持传递参数。