MSDeploy到Azure Web App:无法使用指定的进程连接到远程计算机(“Web管理服务”)

时间:2015-12-23 12:38:30

标签: azure msbuild azure-web-sites msdeploy azure-devops

我们使用下面的脚本在VSO / VSTS Build(vNext)中使用MSBuild MSDeploy发布到我们的Azure Web App。这很有效。

但是,在将Azure Web App分配到自定义域(通过Azure门户)时,发布失败。

MSDeploy上的VSTS构建错误:

  

使用发布方法[MSDeploy]发布   执行命令[“C:\ Program Files \ IIS \ Microsoft Web Deploy V3 \ msdeploy.exe”-source:IisApp ='C:\ a \ 8b0700fff \ MrProjectMain \ Api \ wwwroot' -dest:IisApp ='myproject-prod- webapp',ComputerName ='https://myproject-prod-webapp.azurewebsites.net/msdeploy.axd',UserName ='$ myproject-prod-webapp',Password ='{PASSWORD-REMOVED-FROM-LOG}',IncludeAcls ='False',AuthType ='Basic' - 动词:sync -enableLink:contentLibExtension -retryAttempts:2 -disablerule:BackupRule]
  [错误]错误代​​码:ERROR_COULD_NOT_CONNECT_TO_REMOTESVC
  [错误]更多信息:无法使用指定的进程(“Web管理服务”)连接到远程计算机(“myproject-prod-webapp.azurewebsites.net”),因为服务器没有响应。确保在远程计算机上启动该过程(“Web管理服务”)。请访问:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_COULD_NOT_CONNECT_TO_REMOTESVC了解详情。   [错误]错误:远程服务器返回错误:(403)禁止   [错误]错误计数:1。

Azure门户自定义域设置:

Azure Portal Custom domain

发布脚本:

param($websiteName, $packOutput)

$website = Get-AzureWebsite -Name $websiteName
$msdeployurl = $website.EnabledHostNames[1]

$publishProperties = @{'WebPublishMethod'='MSDeploy';
                        'MSDeployServiceUrl'=$msdeployurl;
                        'DeployIisAppPath'=$website.Name;
                        'Username'=$website.PublishingUsername;
                        'Password'=$website.PublishingPassword;
                        'SkipExtraFilesOnServer'='False';
                        'AllowUntrustedCertificate'='True'}

Write-Output "Publishing web app..."
$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1"
. $publishScript -publishProperties $publishProperties  -packOutput $packOutput

1 个答案:

答案 0 :(得分:1)

问题在于:

$msdeployurl = $website.EnabledHostNames[1]

默认情况下,MSDeploy SCM URL是EnabledHostNames数组中的第二个。所以它默认工作。但是,只要对Web应用程序进行了一些更改,它就可能无法正常工作。根据您提供的日志,MSDeploy正在尝试连接到" https://myproject-prod-webapp.azurewebsites.net/msdeploy.axd",这不是SCM URL。 SCM URL应如下所示:" https://myproject-prod-webapp.scm.azurewebsites.net/msdeploy.axd"。因此,您需要立即检查正确的scm URL数组编号。您可以在PowerShell脚本中添加如下代码,以查看哪个是scm URL,然后相应地更新脚本。

Write-Output $website.EnabledHostNames[0]
Write-Output $website.EnabledHostNames[1]
Write-Output $website.EnabledHostNames[2]
...

您还可以参考this article更新脚本以自动获取正确的SCM网址。