2009-10-06 46 views
1

對於命令像這樣:STSADM.exe - 「操作成功完成」 - 兩次?

C:\>stsadm -o upgradeSolution -name zzz.wsp -filename zzz.wsp -allowGacDeployment -local 

我收到了成功的語句的兩個輸出而不是隻有一個:

Operation completed successfully. 

Operation completed successfully. 

這似乎是有關-local標誌,所以我的猜測因爲它成功地創建了計時器作業然後在引擎蓋下運行execadmsvcjobs。

stsadm -o execadmsvcjobs 

對此有何想法?

+1

TechNet聲明使用'-local'運行'upgradesolution'不使用計時器服務,並且作業同步運行:http://technet.microsoft.com/en-us/library/cc262014.aspx – 2009-10-06 14:33:38

+0

這使得感覺,但是第二個操作成功完成的是什麼? – 2009-10-06 15:06:37

回答

1

不幸的是,我不認爲這是因爲它看起來幾乎一樣令人興奮

在STSADM,如果你部署本地解決方案(立即),將出現以下情況(裂開反射鏡):

base.DeployRetractSolution(solution, urls, userTypedIn, lcid, gacInstallWPPackDlls, true, force); 
    base.OutputSucceedMessage(); 

但是,如果部署在服務器場(計時器作業)的解決方案,這種情況發生:

base.CreateSolnDeployTimerJob(strTime, immediate, solution, urls, userTypedIn, SPSolutionDeploymentJobType.Deploy, lcid, gacInstallWPPackDlls, force); 

base.OutputSucceedMessage();只是將「Operation Completed Success」的本地化語言版本寫入控制檯。

這兩種方法都會產生STSADM SPOperation(和「Operation Completed Successfully」控制檯消息),但是直接的還有另一個base.OutputSucceedMessage();就可以了。

+0

+1優秀且反思明確:-) – 2009-10-07 15:50:59

1

您應該小心使用upgradedesolution,因爲它不支持向解決方案包添加新功能。

另外要警告的是,如果您使用-local,則只能在本地WFE上進行部署。爲了一致性,我總是使用-immediate和完成添加計時器作業後,運行stsadm -o execadmsvcjobs

我不確定這兩條消息,但由於升級解決方案是一個兩階段操作,首先添加舊版本解決方案,然後添加它,這是有道理的,這就是爲什麼你有兩條消息。

+0

這是有道理的,並感謝您的建議。這適用於本地部署到單個WFE - 因此使用-local運行以同步執行升級非常理想。 – 2009-10-07 00:09:23