使用PowerShell进行交换时出现Switch-AzureWebsiteSlot问题

时间:2018-01-04 17:19:59

标签: powershell azure azure-web-sites swap

我尝试在QA环境中执行2个Azure插槽(暂存和生产)之间的交换。为此,我使用PowerShell并使用Switch-AzureWebsiteSlot cmdlet。 在我执行的下面: *`

  

Switch-AzureWebsiteSlot -Name" http://qa-2.cloudapp.net/" -Slot1   "生产" -Slot2" Staging" -Force -Verbose -Debug

`*

但是我收到了以下错误:

  

Switch-AzureWebsiteSlot:该网站必须至少有两个插槽   申请互换   C:\ PrivateAgents \ agent2_work \ R6 \一个\ MyCompany的-CI-模板\降#1129 \ myCompany的-swapslots-azure.ps1:222   焦炭:2   + Switch-AzureWebsiteSlot -Name" http://qa-2.cloudapp.net/" -Slot1 ......   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:CloseError:(:) [Switch-AzureWebsiteSlot],PSInvalidOperationException       + FullyQualifiedErrorId:Microsoft.WindowsAzure.Commands.Websites.SwitchAzureWebsiteSlotCommand

     

DEBUG:AzureQo​​SEvent:CommandName - Switch-AzureWebsiteSlot; IsSuccess    - 错;持续时间 - 00:01:02.5624486;异常 - System.Management.Automation.PSInvalidOperationException:网站   必须至少有两个插槽才能应用swap   Microsoft.WindowsAzure.Commands.Websites.SwitchAzureWebsiteSlotCommand.ExecuteCmdlet()   在   Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord();

我使用调试模式来获取更多细节,但我不明白这是什么意思。我也是Azure和Powershell的新手。

我确保在执行我的cmdlet之前将正确的AzureSubscription设置为当前版本。

任何人都遇到过与我相同的问题吗?

我怀疑" -Name"我用的价值。我使用Azure门户网站上找到的站点URL。我不知道它是否正确。

3 个答案:

答案 0 :(得分:0)

要在订阅中获取您网站的名称,请使用以下PowerShell cmdlet:

获取-AzureWebsite

注意:网站应该是这样的“ constosoweb ”,azure网站看起来像 contosoweb.cloudapp.net

有关详细信息,请参阅“Swap Slots in Azure Web Site when there are 2 or more staging slots using Azure PowerShell”。

答案 1 :(得分:0)

  

我怀疑" -Name"我用的价值。我使用我发现的网站网址   在Azure门户上。我不知道它是否正确。

-Name 是网站的名称,我们可以使用ARM powershell来获取它:

Get-AzureRmWebApp -ResourceGroupName <resourcegroupname> -Name <webappname>

像这样:

enter image description here

  

Switch-AzureWebsiteSlot:网站必须至少有两个插槽

根据此错误消息,我们应该向该网站添加至少两个广告位

enter image description here

然后我们可以运行Switch-AzureWebsiteSlot -Name jasonapp3 -Slot1 jasonapp32 -Slot2 jasonapp4,结果如下:

enter image description here

答案 2 :(得分:0)

Pradeep和Jason,

非常感谢你的帮助。 感谢您的建议,我想出了我的问题所在。实际上,我们使用Azure Cloud Service而不是WebSite。这就是我的cmdet失败的原因。

我找到了适用于Cloud Service的cmdlet,我发现Move-AzureDeployment对我来说非常适合。

由于