TFS 2015 Невозможно выполнить развертывание на определенном сервере, но Visual Studio может выполнить развертывание с сервера Build Agent

TFS 2015 Невозможно выполнить развертывание на определенном сервере, но Visual Studio может выполнить развертывание с сервера Build Agent

Я немного растерялся, поскольку проверил всех обычных подозреваемых.

Одной из самых непонятных вещей является то, что я могу выполнить развертывание через Visual Studio на сервере Build Agent, используя тот же URL-адрес того же сервера, тот же код (буквально скопировал решение Visual Studio из sпапки Build Agent последней сборки)

Однако при сборке через TFS 2015 я вижу следующее:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4276,5): Ошибка: задача веб-развертывания не выполнена. (Не удалось выполнить запрос к URL-адресу удаленного агента 'https://siteurl:8172/msdeploy.axd?site=имя_сайта'.)

Эта ошибка означает, что вы не можете подключиться к серверу. Убедитесь, что URL-адрес службы указан правильно, параметры брандмауэра и сети на этом компьютере и на компьютере-сервере настроены правильно, а соответствующие службы запущены на сервере.

Подробности ошибки:

Не удалось выполнить запрос к URL-адресу удаленного агента.https://siteurl:8172/msdeploy.axd?site=имя_сайта'.

Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка.

Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом.

Существующее соединение было принудительно закрыто удаленным хостом.

Кроме того, журнал WMsvc на целевом сервере IIS не отображает запрос, поступающий на сервер, когда сборку выполняет TFS, однако, когда сборку выполняет Visual Studio, запрос доходит до сервера.

Аргументы MSBuild, переданные в TFS (разрывы строк добавлены для удобства чтения):

/p:GenerateBuildInfoConfigFile=false 
/p:DeployOnBuild=true;
DeployTarget=MSDeployPublish;
MSDeployPublishMethod=WMSvc;
EnableMSDeployBackup=False;
DeployIisAppPath=sitename;
MsDeployServiceUrl=https://siteurl:8172/msdeploy.axd;
AllowUntrustedCertificate=True;
username=$(Web Deploy Username);
password=$(Web Deploy Password);
SkipExtraFilesOnServer=True

Определение сборки было скопировано из другой рабочей сборки, единственными изменениями стали URL-адрес и конфигурация.

Похоже, что это проблема сети, но я не знаю, почему это работает с одного и того же сервера через Visual Studio, но не через TFS, если источник (сервер TFS Build Agent) и место назначения (веб-сервер IIS) одинаковы, порт один и тот же, оба используют https, Web Deploy и т. д.

Есть идеи по дальнейшей отладке?

Дополнительная информация:

Целевой сервер: Windows Server 2012R2 (виртуальная машина на Azure)

решение1

Проверьте несоответствие TLS. Мы использовали ключ регистрации SchUseStrongCrypto, чтобы принудительно включить TLS 1.2 на одной машине, а не на другой. Это привело к "принудительному закрытию", как и у OP. Подробности в блоге здесьhttps://fuseit.zendesk.com/hc/en-us/articles/360000328595

Связанный контент