CMD中的ISDeploymentWizard.exe命令(SSIS部署)不';不要打印任何状态指示
我正在CMD中的ISDeploymentWizard.exe命令(SSIS部署)不';不要打印任何状态指示,cmd,ssis,ssms,Cmd,Ssis,Ssms,我正在CMD中为SSIS运行以下命令: ISDeploymentWizard.exe /Silent /ModelType:Project /SourcePath:"C:\TEST\Integration Services.ispac" /DestinationServer:"TEST03,1111" /DestinationPath:"/TEST/DEVOPS" 它成功地完成了,但没有向命令行显示。我只能通过SSMS进行检查,以确保
CMD
中为SSIS
运行以下命令:
ISDeploymentWizard.exe /Silent /ModelType:Project /SourcePath:"C:\TEST\Integration Services.ispac" /DestinationServer:"TEST03,1111" /DestinationPath:"/TEST/DEVOPS"
它成功地完成了,但没有向命令行显示。我只能通过
SSMS
进行检查,以确保它确实已部署。你知道为什么吗?这里@areilma有一个可靠的观察选项,/silent选项消除了所有的状态信息。我一直认为标志控制gui是否显示
如果我运行这个命令
isdeploymentwizard.exe /Silent /ModelType:Project /SourcePath:".\SO_66497856.ispac" /DestinationServer:".\dev2017" /DestinationPath:"/SSISDB/BatchSizeTester/SO_66497856"
我的包已部署到指定路径的本地计算机上。删除/silent选项会导致GUI打开预先填充的值
isdeploymentwizard.exe /ModelType:Project /SourcePath:".\SO_66497856.ispac" /DestinationServer:".\dev2017" /DestinationPath:"/SSISDB/BatchSizeTester/SO_66497856"
前一个命令运行时,不会向命令提示符打印任何内容。这就是愉快的路径部署,也许如果出现“错误”,我会在命令行上收到一条错误消息。这就是事情变得“有趣”的地方
我将目标路径更改为不存在的文件夹。我知道,如果路径不存在,该工具不会创建路径,并且当我运行它时,我没有在命令行上返回错误。我得到的是一个弹出窗口的错误
标题:SQL Server集成服务
路径不存在。在目录“SSIDB”中找不到文件夹“cBatchSizeTester”。(Microsoft.SqlServer.IntegrationServices.Wizard.Common)
按钮:
嗯
因此/silent选项删除gui以允许我们进行自动部署,但如果传递了错误的值,我们将返回gui。。。然后我用一个错误的服务器名重复了一遍,这导致了第二次观察。我第二次按enter键时,命令行返回,准备执行下一个命令。但15秒后
标题:SQL Server集成服务
无法连接到服务器。\dev2017a。(Microsoft.SqlServer.ConnectionInfo)
其他信息:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)(Microsoft SQL Server,错误:-1)
有关帮助,请单击:
现在,这告诉我实际的部署是一个独立的派生过程。因此,在任何情况下,它都不会将任何数据返回到命令行
既然我假设我们是从CI/CD的角度来看这个问题,我们能做些什么?我们可以在SSIDB目录视图中查找条目后触发一个sqlcmd
,以查看发生了什么。像这样的
SELECT TOP 1 O.end_time, SV.StatusValue, F.name AS FolderName, P.name AS ProjectName FROM catalog.operations AS O
CROSS APPLY
(
SELECT
CASE O.status
WHEN 1 THEN 'Created'
WHEN 2 THEN 'Running'
WHEN 3 THEN 'Canceled'
WHEN 4 THEN 'Failed'
WHEN 5 THEN 'Pending'
WHEN 6 THEN 'Ended unexpectedly'
WHEN 7 THEN 'Succeeded'
WHEN 8 THEN 'Stopping'
WHEN 9 THEN 'Completed'
END AS StatusValue
)SV
INNER JOIN catalog.object_versions AS OV ON OV.object_id = O.object_id
INNER JOIN catalog.projects AS P ON P.object_version_lsn = OV.object_version_lsn
INNER JOIN catalog.folders AS F ON F.folder_id = P.folder_id
/*
INNER JOIN
catalog.packages AS PKG
ON PKG.project_id = P.project_id
*/
WHERE O.operation_type = 101 /*deploy project*/
AND P.name = 'SO_66497856' /*project name*/
AND F.name = 'BatchSizeTester'
ORDER BY o.created_time DESC
也许对过去10秒内的结束时间进行筛选是合适的,如果我们有一个结果,并且状态为Successed,我们将得到一个deploy。没有结果意味着它失败了。我假设gui运行时也会发生类似的情况,尽管进行了所有这些测试,但我不想触发一个跟踪来完全完善这个答案,看看幕后会发生什么
如果您想否定预构建工具的价值,另一个选项是使用ManagedObjectModel/PowerShell方法进行部署,因为您可以从中获取信息。另一个部署选项是使用TSQL命令。我的文档部分的第二个链接概述了它的外观
我能找到的微不足道的文件
我找不到有关isdeploymentwizard.exe的命令行开关的文档
- 从@arielma删除的答案中,他们发现了一个更简洁的答案,即“”
/Silent
在我看来,似乎是一条明显的线索,说明为什么没有迹象。如何使用SSMS
对于StackOverflow来说不是一个有效的主题问题。根据我的理解,/Silent
表示它在后台运行,带有默认选项。这与结果无关。没有关于自我答案的否决票的线索,但我同意你从MSDN链接中发现的。不可能找到更多的文档:我发布了与此问题相关的问题。。。你也能看一下吗?