MSDeploy:使用runCommand提供程序调用远程.cmd文件时出错(超时)

6
我们在尝试使用MSDeploy的“runCommand”提供程序在远程计算机上执行.cmd文件时遇到了错误。预期运行时间应该约为10秒,但MSDeploy只运行了约2-3秒,之后返回错误详细信息。
这是我正在使用的完整的MSDeploy“runCommand”命令行文本:
msdeploy.exe -verb:sync -source:runCommand="D:\web deploy tester\test_cmd.cmd",dontUseCommandExe=false,waitAttempts=5,waitInterval=1000 -dest:auto,computername=http://test-machine:89/MsDeployAgentService/,userName=aaa,password=bbb

以下是返回的错误详细信息:
Error 'Error: (4/21/2010 12:19:25 PM) An error occurred when the request was processed on the remote computer.
Error: The process 'C:\WINDOWS\system32\cmd.exe' (command line '/c "D:\web deploy tester\test_cmd.cmd"') was terminated because it exceeded the wait time.
Error count: 1.
' occurred in call to RunCommand

任何想法为什么会发生这种情况,如何解决?

我有同样的问题,无论我指定等待间隔是多少,msdeploy都会立即返回此错误,尽管它在出错之前显然没有等待指定的时间。 - Andrew Bullock
我注意到当我在批处理文件中使用它并且我正在使用"时,我犯了一个错误,即将waitInterval包含在命令路径的引号内而不是外部:..",waitInterval.. - The Muffin Man
1个回答

6

您应该指定一个更高的等待时间间隔waitInterval。此值以毫秒为单位。您可以尝试20000(20秒)。默认值为1000。


2
谢谢您的回复,Sayed。我尝试了您的建议,甚至让该过程运行了几分钟,但这并没有解决问题。此外,根据runCommand文档,似乎您提到的设置是重试之间间隔的长度,而不是允许远程命令在超时之前完成执行的时间。可以在本地计算机的命令提示符中运行.cmd文件而不会出现任何问题,并且运行操作的帐户具有管理员级别的权限。还有其他理论可以解释这种情况吗? - dabulls
1
不得不说,我也有同样的问题。在我的 SourceManifest.xml 文件中有一个 "runCommand",但是 waitInterval/waitAttempts 似乎被忽略了。 - Peter McEvoy
2
我通过设置waitAttempts=1和waitInterval=20000成功让MsDeploy.exe执行了一些非默认操作,但结果并不如预期,因此我放弃了runCommand提供程序。 - Peter McEvoy
尝试通过清单来指定似乎没有任何作用。如果我打开zip文件并在archive.xml中添加属性,情况也是一样的。 - Merlyn Morgan-Graham
我记得我在上一条评论中添加了一个后续,但现在不重要了。我只是没有正确更新我的软件包。当你不确定的时候,做一个完整的构建清理,删除 obj 目录,然后完全重新构建和打包。似乎如果你不这样做,有些选项就不会被更新。 - Merlyn Morgan-Graham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接