我试图在Windows Server上运行Artifactory但Artifactory服务无法启动。我在Hyper-V中的VM中运行Windows Server 2016 Datacenter。我已经尝试过使用和不使用Windows GUI的服务器安装。 Artifactory通过Chocolatey安装:
choco install Artifactory -y
当我尝试使用PowerShell启动服务时:
Start-Service Artifactory
我立即在PowerShell中遇到此错误:
服务&神器(Artifactory)'由于以下错误导致无法启动:无法在计算机上启动服务Artifactory'。'。
Windows事件日志按以下顺序显示这两个错误:
- 等待Artifactory服务连接时达到超时(30000毫秒)。
- 由于以下错误,Artifactory服务无法启动: 该服务未及时响应启动或控制请求。
同样,这些错误会立即发生,因此超时错误完全是错误的。
但是我能够手动启动Artifactory过程:
C:\Program Files\artifactory\bin\artifactory.bat
公地daemon.2017-08-10.log
[2017-08-10 10:02:53] [info] [ 2344] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:53] [info] [ 2344] Service Artifactory name Artifactory
[2017-08-10 10:02:53] [info] [ 2344] Service 'Artifactory' installed
[2017-08-10 10:02:53] [info] [ 2344] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info] [ 3420] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:54] [info] [ 3420] Updating service...
[2017-08-10 10:02:54] [info] [ 3420] Service 'Artifactory' updated
[2017-08-10 10:02:54] [info] [ 3420] Update service finished.
[2017-08-10 10:02:54] [info] [ 3420] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info] [ 1468] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:54] [info] [ 1468] Updating service...
[2017-08-10 10:02:54] [info] [ 1468] Service 'Artifactory' updated
[2017-08-10 10:02:54] [info] [ 1468] Update service finished.
[2017-08-10 10:02:54] [info] [ 1468] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info] [ 1000] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:54] [info] [ 1000] Updating service...
[2017-08-10 10:02:54] [info] [ 1000] Service 'Artifactory' updated
[2017-08-10 10:02:54] [info] [ 1000] Update service finished.
[2017-08-10 10:02:54] [info] [ 1000] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info] [ 5016] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:55] [info] [ 5016] Updating service...
[2017-08-10 10:02:55] [info] [ 5016] Service 'Artifactory' updated
[2017-08-10 10:02:55] [info] [ 5016] Update service finished.
[2017-08-10 10:02:55] [info] [ 5016] Commons Daemon procrun finished
[2017-08-10 10:02:55] [info] [ 4308] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:55] [info] [ 4308] Updating service...
[2017-08-10 10:02:55] [info] [ 4308] Service 'Artifactory' updated
[2017-08-10 10:02:55] [info] [ 4308] Update service finished.
[2017-08-10 10:02:55] [info] [ 4308] Commons Daemon procrun finished
[2017-08-10 10:02:55] [info] [ 1168] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:55] [info] [ 1168] Updating service...
[2017-08-10 10:02:55] [info] [ 1168] Service 'Artifactory' updated
[2017-08-10 10:02:55] [info] [ 1168] Update service finished.
[2017-08-10 10:02:55] [info] [ 1168] Commons Daemon procrun finished
artifactory的-services.2017-08-10.log
[2017-08-10 10:02:56] [info] [ 3172] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:56] [info] [ 3172] Updating service...
[2017-08-10 10:02:56] [info] [ 3172] Service 'Artifactory' updated
[2017-08-10 10:02:56] [info] [ 3172] Update service finished.
[2017-08-10 10:02:56] [info] [ 3172] Commons Daemon procrun finished
[2017-08-10 10:02:56] [info] [ 540] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:56] [info] [ 540] Updating service...
[2017-08-10 10:02:56] [info] [ 540] Service 'Artifactory' updated
[2017-08-10 10:02:56] [info] [ 540] Update service finished.
[2017-08-10 10:02:56] [info] [ 540] Commons Daemon procrun finished
使用procmon我注意到当我试图启动' artifactory'服务它正在启动&artifactory-service.exe'。试图直接自己运行该程序导致以下错误:
系统无法找到服务的注册表项&#artifact; artifactory-service' 加载配置失败 该系统找不到指定的文件。 Commons Daemon procrun以退出值失败:2(无法加载配置) 系统找不到指定的文件。
再次检查procmon表明当我开始使用artifactory-service.exe'它试图访问注册表项' HKLM \ SOFTWARE \ WOW6432Node \ Apache Software Foundation \ Procrun 2.0 \ artifactory-service'而没有找到它。我通过注册表确认此注册表项不存在。我倾向于认为这是服务无法启动的部分原因。
答案 0 :(得分:5)
这似乎是由artifactory-service.exe引起的,导致在服务定义中使用了不常见的字符。运行installService.bat后,我检查了服务"可执行文件"有
...\artifactory-pro-5.5.1\bin\artifactory-service.exe //RS//Artifactory
这个不寻常的角色是一些奇怪的unicode角色,例如: http://www.fileformat.info/info/unicode/char/0cf4/index.htm
这似乎是由artifactory-service.exe引起的,它只是" Commons Daemon Service Runner"的旧版本。 prunsrv.exe v1.0.11.0。我无法找到此错误的文档,因此我不知道其根本原因。
我要解决的问题是从Tomcat 8安装(tomcat8.exe)获取最新版本的prunsrv.exe v1.0.15.0并将其重命名为artifactory-service.exe并将其放回%ARTIFACTORY_HOME %\ bin安装文件夹。这使它能够安装并开始运行而不会出现问题。
答案 1 :(得分:3)
太棒了!你的程序对我有用,非常感谢。 gremlin是我们在安装后在服务完整路径上看到的非法字符。我很困惑,因为在Windows 10下神器服务工作正常,但在Windows 2016下拒绝工作。试图扩展PipeServiceTimeout无济于事。
如果有些人不清楚,只需要将 tomcat8.exe 从最新的tomcat 8.5.23下载重命名为 artifactory-service.exe 。检查文件属性允许查看原始文件 prunsrv.exe v1.0.11.0 或 prunsrv.exe v1.0.15.0 。