该msdeploy.axd?site =参数值从何而来?

时间:2019-04-20 08:40:09

标签: msbuild azure-devops msdeploy

在Azure DevOps中,我的连续部署管道失败运行msdeploy命令。该构建不会引发任何错误。这是发行版部署期间的错误:

Error Code: ERROR_USER_NOT_AUTHORIZED_FOR_CREATEAPP

是的,非常普遍,它是site name missmatch problem。但是我没有设法更改该站点的URL参数。 我的本地生成和本地运行的部署命令可以部署到Azure(到应用程序服务:xxxx-dev-app)。 在本地没有显示参数?site=,并且可以正常工作,如果我手动修改部署脚本并添加?site=,则可以使用本地运行的部署脚本重现相同的错误。

那么,为什么在Azure生成过程中将此参数添加到Url中以及从何处获取其值?

a)我的 parameters.xml 如下:

<parameters>
<parameter name="IIS Web Application Name" devaultValue="Default Web Site" />
</parameters>

结果:对站点参数值没有影响

b)我尝试通过使用以下参数运行MS build来设置站点名称:

  

/ p:IisApp =“默认网站” / p:DeployIisAppPath =“默认网站”

结果:对站点参数值没有影响

c)我尝试在发布管道中设置以下变量:enter image description here

结果:对站点参数值没有影响

但是Azure发布部署过程的日志输出始终显示以下URL:

  

-dest:auto,ComputerName ='https://xxx-dev-app.scm.azurewebsites.net:443/msdeploy.axd?site=xxxx-dev-app'

如果我像这样直接修改parameters.xml:

<parameters>
<setParameter name="IIS Web Application Name" value="Default Web Site" />
</parameters>

我收到此错误:

Error: Source does not support parameter called 'IIS Web Application Name'.

附录,20.4.2019: 除去parameters.xml和变量“ IIS Web应用程序名称”后,我仍然得到此deploy输出日志行,表明它试图设置?site=xxxx-dev-app参数:

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" 
-verb:sync 
-source:package='d:\a\r1\a\xxxx CI Pipeline\xxxxToolV01\src\xxxxoolV01\xxxxoolV01\Publish\xxxxoolV01.zip' 
-dest:auto,
      ComputerName='https://xxxx-dev-app.scm.azurewebsites.net:443/msdeploy.axd?site=xxxx-dev-app',
      UserName='$xxxx-dev-app',
      Password='***',
      AuthType='Basic'
-setParam:name='IIS Web Application Name',value='xxxx-dev-app'
-enableRule:AppOffline
-enableRule:DoNotDeleteRule
-userAgent:VSTS_b7d1246f-0592-4548-9a3d-da995f3fb94e_release_1_59_59_5

0 个答案:

没有答案