2009-10-06 3 views
1

Для таких команд, как это:STSADM.exe - «Операция завершена успешно» - дважды?

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

Я получаю два выхода из заявления успеха, а не только один:

Operation completed successfully. 

Operation completed successfully. 

Это, кажется, связано с -local флагом, так что мое предположение было что он успешно создает Timer Job, затем запускает execadmsvcjobs под капотом.

stsadm -o execadmsvcjobs 

Мысли об этом?

+1

TechNet заявляет, что при выполнении 'upgradeesolution' с' -local' не используется служба таймера, и задание выполняется синхронно: http://technet.microsoft.com/en-us/library/cc262014.aspx –

+0

Это делает но какова вторая операция, которая завершается успешно? –

ответ

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(); просто записывает на консоль локализованную версию «Успешно завершена операция».

Оба они делают вещи под капотом, которые генерируют STSADM SPOperation (и сообщение об успешном завершении операции «Успешно»), но у ближайшего есть только base.OutputSucceedMessage(); на нем.

+0

+1 Отличный и отражающий окончательный :-) –

1

Вы должны использовать upgradeesolution с осторожностью, поскольку он не поддерживает добавление новых функций в пакет решений.

Также следует предупредить, что если вы используете -local, вы развертываете только локальные WFE. Для согласованности я всегда использую -immediate, и после того, как я закончил добавлять задания таймера, я запускаю stsadm -o execadmsvcjobs

Я не уверен в двух сообщениях, но так как upgradeesolution - это двухступенчатая операция, которая сначала добавляет новую версию старого решение, а затем добавляет его, было бы разумно, что именно поэтому вы получили два сообщения.

+0

Это имеет смысл, и спасибо за рекомендации. Это предназначено для локального размещения на одном WFE, поэтому работа с -local для синхронного обновления является идеальной. –

Смежные вопросы