使用set参数部署到Azure时出现MSdeploy错误

时间:2016-02-25 20:03:51

标签: asp.net azure deployment teamcity

我在teamcity中使用Msdeploy将asp.net应用程序部署到Azure云。我喜欢使用setparameters.xml,以便我可以为不同的站点部署不同的配置条目。

当我尝试执行以下命令和参数时,它没有抛出任何错误消息但没有获得所需的结果(未在web.config中修改的配置条目)

"C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"

-verb:sync -source:contentPath="%teamcity.build.checkoutDir%\MySite" 
-dest:contentPath='%azureSite%',ComputerName="https://%azurePublishUrl%/msdeploy.axd?site=%azureSite%",UserName='%azureUsername%',Password='%azurePassword%',AuthType='Basic' -setParamFile:"%teamcity.build.checkoutDir%\MySite.SetParameters.xml"

我尝试修改上面的参数语句,如下所示



-source:package='%teamcity.build.checkoutDir%\MySite.zip' -dest:auto,computerName="https://%azurePublishUrl%/msdeploy.axd?site=%azureSite%",userName="%azureUsername%",password="%azurePassword%",authtype="Basic",includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"%teamcity.build.checkoutDir%\MySite.SetParameters.xml"

并收到以下错误消息。

在目录中:C:\ TeamCity \ buildAgent \ work \ 24caecb58f06574f [18:30:53] [步骤2/2]信息:使用ID' d7980b43-c13e-4b7a-95c1-1da8c5acdc6b'用于连接远程服务器。 [18:30:55] [步骤2/2]信息:添加sitemanifest(sitemanifest)。 [18:30:55] [步骤2/2]信息:创建应用程序(https://MySite-dev.azurewebsites.net/) [18:30:55] [步骤2/2]错误代码:ERROR_USER_NOT_AUTHORIZED_FOR_CREATEAPP [18:30:55] [步骤2/2]更多信息:使用Web管理服务进行连接时,无法使用指定的提供程序(" createApp")完成操作。如果服务器管理员未授权用户执行此操作,则可能会发生这种情况。 createApp http://go.microsoft.com/fwlink/?LinkId=178034了解更多信息,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_USER_NOT_AUTHORIZED_FOR_CREATEAPP。

这是一个有效的错误吗?这两个参数之间有什么区别我如何将复制到web.config中的setParameter.xml值应用于不同的站点?

我从azure portal中的Azure发布详细信息选项中获取了站点详细信息(用户名,密码,站点URL)。

1 个答案:

答案 0 :(得分:1)

the documentationpublic class Products { public byte Favorite { get; set; } { get { return this.Favorite; } set { if ((this.Favorite != value)) { this.OnFavoriteChanging(value); this.SendPropertyChanged("Favorite"); } } } partial void OnFavoriteChanging(byte value); protected virtual void SendPropertyChanged(String propertyName) { if ((this.PropertyChanged != null)) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } } package个提供商仅支持参数化。

我相信您为第二个MSDeploy调用提供的错误表明您用于部署的信用无权在目标服务器上创建IIS Web应用程序。您应该手动测试创建站点,然后再次部署以查看它是否有效。