Как передать sitename в ProjectName.развертывать.УМК
я пытаюсь запустить имя проекта.deply.cmd, который генерируется MSBuild при параметре это. Один из аргументов "ComputerName" должен быть передан как https://WebServer01:8172/MSDeploy.axd?SiteName=MySiteName
. Моя командная строка будет
ProjectName.deploy.cmd /Y /M:https://WebServer01:8172/MSDeploy.axd?Site=MySiteName
-AllowUntrusted /U:DeployUserName /P:Password /A:Basic
возвращает
Error: Unrecognized argument 'MySiteName'. All arguments must begin with "-".
фактическая команда, которая выполняется
"C:Program FilesIISMicrosoft Web Deploy V3msdeploy.exe"
-source:package='Y:ProjectName.zip'
-dest:auto,computerName='https://WebServer01:8172/MSDeploy.axd?Site',userName='DeployUserName',password='Password',authtype='Basic',includeAcls='False'
-verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"Y:ProjectName.SetParameters.xml"
MySiteName
-AllowUntrusted
обратите внимание, что аргумент to / M https://WebServer01:8172/MSDeploy.axd?Site=MySiteName
разделен на два аргумента и, таким образом, создавая computerName='https://WebServer01:8172/MSDeploy.axd?Site'
и дополнительный аргумент MySiteName
.
я прошел через сбой запуска пакета развертывания с указанными параметрами в Visual Studio 2010 с пакетом обновления 1 но это заботится только о ArgMsDeployAdditionalFlags
а не аргументы, например /M:ComputerName
.
когда SiteName не передается, я могу выполнить развертывание с пользователем, у которого были права администратора на сервере, но когда используется стандартный пользователь IIS DeployUserName, я получаю 401
ProjectName.deploy.cmd /Y /M:https://WebServer01:8172/MSDeploy.axd
-AllowUntrusted /U:DeployUserName /P:Password /A:Basic
сервер возвращает 401
Error Code: ERROR_USER_UNAUTHORIZED
More Information: Connected to the remote computer ("WebServer01") using the Web
Management Service, but could not authorize. Make sure that you are using the
correct user name and password, that the site you are connecting to exists, and
that the credentials represent a user who has permissions to access the site.
Learn more at: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_UNAUTHORIZED.
Error: The remote server returned an error: (401) Unauthorized.
разрешения для этого пользователя, как опубликовать из VS2012
С MSDeploy
профиль с помощью этого пользователя работает просто отлично. Я также могу построить msdeploy.exe
команда, и это также работает нормально. Я должен использовать ProjectName.deploy.cmd
как это производится в рамках Team Build
С TFS2010
.
2 ответов
вы пробовали цитировать аргумент?
ProjectName.deploy.cmd /Y "/M:https://WebServer01:8172/MSDeploy.axd?Site=MySiteName"
-AllowUntrusted /U:DeployUserName /P:Password /A:Basic
думал, что добавлю к ответу для всех, кто, как я, натыкается на это, пытаясь понять, почему это не работает, и кто хотел бы эквивалентную команду msdeploy.
Как упоминалось в комментариях, цитирование аргумента не будет работать из-за ошибки в том, как анализируются аргументы, из MS docs:
на момент написания, из-за ошибки в конвейере веб-публикации (WPP), вы не можете запустить .развертывать.cmd-файл с использованием адреса конечной точки что включает строку запроса. В этом случае необходимо развернуть ваш веб-пакет с помощью MSDeploy.ехе напрямую.
поэтому вместо этого вы должны использовать MSDeploy напрямую. Эквивалентно развертыванию.cmd аргументы в вопросе:
MSDeploy.exe -source:package='<fullPathToDeployable>\<projectName>.zip'
-dest:auto,computerName="https://<ipOrDnsName>:8172/MSDeploy.axd",userName="<userName>,password="<pwd>",authtype="Basic",includeAcls="False"
-verb:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"<fullPathToDeployable>\<projectName>.SetParameters.xml"
-setParam:name="IIS Web Application Name",value="<siteName>"
-AllowUntrusted
(заменить слова в квадратных скобках)