Ошибка: невозможно получить переменную удаленной среды «WindowsDirectory» с помощью msdeploy tempagent.

При использовании msdeploy для развертывания приложения IIS на удаленном сервере с помощью функции Web Deploy On Demand (tempagent) я получаю следующую ошибку:

./myApp.deploy.cmd : Error: Unable to get the remote environment variable 'WindowsDirectory' on the computer 
'myserver.mydomain.com'.
At line:1 char:1
+ ./myApp.deploy.cmd /T /M:$target /U:$username /P:$ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Error: Unable t...com'.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
Error: The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))
Error count: 1.

Я использую автоматически сгенерированный сценарий развертывания, созданный целевым объектом пакета в msbuild. Я запускаю каталог, в котором живут все эти артефакты. Это мой скрипт для запуска этого скрипта:

$target = 'myserver.mydomain.com'
$username = 'myusername'
$password = 'mypassword'


./myApp.deploy.cmd /T /M:$target /U:$username /P:$password /G:true

Это сценарий, созданный сценарием .cmd, точно такая же ошибка возникает, если я запускаю его напрямую:

SetParameters from:
"C:\Users\MaxCadmin\Desktop\Package\myApp.SetParameters.xml"
You can change IIS Application Name, Physical path, connectionString
or other deploy parameters in the above file.
-------------------------------------------------------
 Start executing msdeploy.exe
-------------------------------------------------------
 "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='C:\Users\MaxCadmin\Desktop\Package\myApp.zip' -dest:auto,computerName="myserver.mydomain.com",userName="myusername",password="mypassword",includeAcls="False",tempAgent="true" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"C:\Users\MaxCadmin\Desktop\Package\myApp.SetParameters.xml" -whatif 
Info: Using ID 'bce210a0-29f9-4859-8fc2-f308c6ce5e72' for connections to the remote server.

Я использую функцию tempagent, поэтому мне не нужно устанавливать Web Deploy на все мои цели и поддерживать их все обновленными до одной и той же версии. Я предпочитаю перспективу использования временного агента, полностью исключающего необходимость какой-либо специальной настройки целей. Я подтвердил, что на моей цели в этом случае не установлен Web Deploy.

Я считаю, что временный агент выдает ошибку отключения в конце сообщения об ошибке. Меня больше беспокоит ошибка, связанная с невозможностью получить удаленную переменную.

Что бы это ни стоило, я пошел на удаленный сервер и создал эту переменную env со значением, совпадающим со значением windir, то есть C:\Windows, и доказал себе, что оно присутствует в новой оболочке. Но это никак не изменило ошибку.


person Max Cascone    schedule 05.03.2021    source источник
comment
Я думаю, это может быть вызвано тем, что вы что-то упустили. Для получения информации о настройке веб-сервера для публикации веб-развертывания вы можете обратиться по этой ссылке: docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/   -  person Ding Peng    schedule 08.03.2021
comment
Я не могу найти ничего, что я не сделал, и я все еще получаю ту же ошибку. - Я являюсь администратором на исходной и целевой машинах. -MsDepSvc НЕ установлен на удаленной машине. - У меня есть дополнительные файлы, перечисленные в статье, на исходном компьютере. -Подтвержденный TCP прослушивает порт 80. -winmgmt уже запущен на обеих машинах. Я готов просто запустить свой собственный сценарий копирования-развертывания-перезапуска на этом этапе, если я не могу понять это, я был бы очень признателен за любую помощь!   -  person Max Cascone    schedule 08.03.2021