我有一个Windows服务的问题,我只是根本无法到达底部。 我想要做的是从作为Windows服务运行的TeamCity构build代理执行HP WebInspect 9.0应用程序。 最终目标是在应用程序发布到目标环境之后自动执行安全扫描。
我有一个命令,当我远程进入服务器时,从命令窗口中执行得非常好:
"C:\Program Files\HP\HP WebInspect\wi.exe" -u http://mysite.com -r "Vulnerability (Classic)" -y Standard -fc:\Temp\Report.pdf -gp -v
此命令定期(每隔几分钟)向terminal返回详细输出,并在约13分钟(持续时间相当一致)后最终以PDF格式丢弃报告。 但是,一旦我从TeamCity运行它,我可以看到该命令出现在TeamCity服务器上的构build输出,但在此之后绝对没有。 即使8小时后,它只是挂起,我不知道为什么。
一些更多信息:
我的怀疑是,由于某种原因,它坐在那里等待投入,但我不知道为什么。 我假设在我的身份下运行一个命令的服务应该和我在login并执行相同命令时的行为一样 – 这个假设是错误的吗? 还有什么我可以看看尝试,并得到这个底部?
作为第一步,我build议将长命令行保存到batch file(例如LaunchWI.cmd)中,并从TeamCity构build代理调用该batch file。
从Windows服务启动应用程序时,当前工作目录将被设置为c:\ windows \ system32 – 这可能会导致一些问题。 尝试添加
C:
CD“\ Program Files \ HP \ HP WebInspect”
在启动webinspect之前进入您的batch file。