Ошибка сборки VS2010 TFS — не удалось выполнить запрос к удаленному агенту

#visual-studio-2010 #iis #tfs #iis-7.5

#visual-studio-2010 #iis #tfs #iis-7.5

Вопрос:

Я получил эту ошибку при попытке запустить сборку из VS2010.

C:Program FilesMSBuildMicrosoftVisualStudiov10.0WebMicrosoft.Web.Publishing.targets (3588): Web deployment task failed.(Could not complete the request to remote agent URL 'https://http//[serverName]:8172/msdeploy.axd?site=Default Web Site'.) Could not complete the request to remote agent URL 'https://http//[serverName]:8172/msdeploy.axd?site=Default Web Site'. The remote name could not be resolved: 'http'

Я не уверен, почему он говорит «https://http //…»
Код возвращается на удаленный сервер TFS. Я создал определение сборки из VS Team Explorer, и это ошибка, которую я получаю при попытке создать / опубликовать проект. [Имя_сервера] выше — это сервер IIS, на котором должен быть опубликован мой проект.

Это аргументы MSBuild:

 /p:DeployOnBuild=True 
/p:DeployTarget=MsDeployPublish 
/p:CreatePackageOnPublish=False 
/p:MSDeployPublishMethod=WMSVC 
/p:MSDeployServiceUrl=http://[serverName] 
/p:DeployIisAppPath="Default Web Site/[site/app Name]"
  

Кто-нибудь сталкивался с такой же ошибкой?
кстати, я смог выполнить успешное веб-развертывание из самого VS Publish

Ответ №1:

Эдвард решил первую часть вашей проблемы.

Что касается части https: //, msdeploy по умолчанию выполняет действия безопасным способом. Чтобы отключить это, вы должны использовать команду -allowUntrusted .

для «легкого» чтения: http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx

и

http://forums.iis.net/t/1158582.aspx

Комментарии:

1. 1. есть ли способ добавить команду allowUntrusted в определение сборки TFS? 2. кажется, это работает (только в графическом интерфейсе VS publish) с http://[Имя_сервера], но не с ([имя_сервера] и разрешить ненадежный). Я не уверен, что это моя локальная машина или сервер IIS не настроен правильно, потому что, похоже, ему не нравится использовать https

2. хорошо, поэтому я добавил /p:AllowUntrustedCertificate (который является эквивалентом вышеупомянутого -allowUntrusted arg для командной строки — спасибо Крису) в определение сборки TFS. конфигурация, а также /p: имя пользователя и /p: пароль и пока все хорошо … успешная сборка / публикация… Спасибо, ребята

Ответ №2:

Я почти уверен, что вам нужно либо указать только имя хоста для MSDeployServerUrl параметра, либо полный URL-адрес для msdeploy. То есть либо:

 /p:MSDeployServiceUrl=http://[servername]:8172/msdeploy.axd
  

или:

 /p:MSDeployServiceUrl=[servername]
  

Последний будет переведен на https://[servername]:8172/msdeploy.axd .

Комментарии:

1. ok..so по крайней мере, теперь это не отображается https://http// в ошибке… но знаете ли вы, почему он использует https?

Ответ №3:

Прошло некоторое время с момента открытия вопроса, но я столкнулся с той же проблемой, и она не была полностью решена с помощью ответов выше…

Что мне нужно было изменить, так это удалить протокол из MSDeployServiceUrl

 /p:MSDeployServiceUrl=[servername]
  

И изменение MSDeployPublishMethod на RemoteAgent

 /p:MSDeployPublishMethod=RemoteAgent
  

Надеюсь, это будет полезно для других.

Ответ №4:

Я создал профиль публикации с помощью web deploy и сохранил в TFS, а затем в моем определении сборки в аргументах MSBuild я добавил это:

 /p:DeployOnBuild=True;PublishProfile=Web_Dev_WebDeployProfile  /p:AllowUntrustedCertificate=True /p:username=myusername /p:Password=mypassword
  

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

Я также проверяю, что на моем веб-сервере запущены служба веб-управления и служба агента веб-развертывания.