我正在尝试使用WebDeploy V3部署软件包。 安装过程是在源文件夹与远程计算机上的目标文件夹之间进行同步,并在同步完成后运行某个PowerShell脚本。 正在执行的命令是:
'"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:dirPath='C:\source' -dest:dirPath='D:\destination',computerName=XXX -postSync:runcommand='powershell -inputformat none D:\destination\Install.ps1',successReturnCodes=0'
这会产生以下错误:
Info: Using ID '49edd786-d8a0-4acf-be7b-95dd6e1391cc' for connections to the remote server. Performing '-postSync'... Info:
Using ID '5ef9d005-82fa-4811-9f51-1741c8d622de' for connections to the remote server.
Info: Adding MSDeploy.runCommand (MSDeploy.runCommand).
Error: (11/28/2012 4:34:24 AM) An error occurred when the request was processed on the remote computer. Error: The entry type 'Unknown' was not expected at this time. The serialization stream may be corrupted.
Error count: 1.
Error during '-postSync'. Total changes: 0 (0 added, 0 deleted, 0 updated, 0 parameters changed, 0 bytes copied)
在网上搜索此错误时,我没有看到任何人在使用runcommand提供程序时遇到它。如果有人遇到类似的问题,并有任何想法或建议,我将非常感谢..
答案 0 :(得分:1)
从我所看到的情况来看,使用runCommand
执行任意命令行可能有点儿错误。尝试将命令行移动到bat
或cmd
文件并提供(完整?)路径。只要您不尝试传入任何参数,就会上传并执行该文件。
答案 1 :(得分:0)
对于这篇文章的未来观众:在将runCommand提供者用法添加到Web Publishing Pipeline MSBuild进程的MyProject.wpp.targets文件后,我遇到了同样的特定错误(Error: The entry type 'Unknown' was not expected at this time. The serialization stream may be corrupted
)。该路径是直接cmd shell输入,用于清除attrib -R
的只读标志。
就我而言,我的构建服务器配置了WebDeploy 3.0,而部署包的目标服务器配置了Webdeploy 2.0。将目标服务器升级到Webdeploy 3.0后,此特定问题已得到解决。
然而,由于围绕runCommand的其他错误(在程序包运行时提供了目标可执行文件的正确路径),我的解决方案仍然无法正常工作,所以请大家都这么做。