2016-08-30 5 views
2

Я пытаюсь использовать Switch-AzureWebsiteSlot как это следующим образом:

SWITCH-AzureWebsiteSlot -name 'Имя_узла' -slot1 'Балетмейстер' -slot2 'Производство' -f Орсе -Verbose

Однако, несмотря на то, что на моем веб-сайте есть 2 слота, Staging и по умолчанию я все еще получаю следующую ошибку от Power Shell.Azure подкачки не работает

Switch-AzureWebsiteSlot : The website must have at least two slots to apply swap 
At line:1 char:1 
+ Switch-AzureWebsiteSlot -Name 'sitename' -slot1 'St ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : CloseError: (:) [Switch-AzureWebsiteSlot], PSInvalidOperationException 
    + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.Websites.SwitchAzureWebsiteSlotCommand 

У вас есть идеи, почему? Вы также сталкивались с этим во время поездок по коду?

ответ

2

Switch-AzureWebsiteSlot для сайтов ASM. В вашем случае, я думаю, вы создали сайт ARM, поэтому Switch-AzureWebsiteSlot здесь не подходит.

Перестановка слот для ARM сайтов, вы должны использовать ниже сценарий:

$ParametersObject = @{targetSlot = "[slot name – e.g. “production”]"} 
Invoke-AzureRmResourceAction -ResourceGroupName [resource group name]-ResourceType Microsoft.Web/sites/slots -ResourceName [web app name]/[slot name] -Action slotsswap -Parameters $ParametersObject -ApiVersion 2015-07-01 

Вы можете проверить this article для деталей.

Update:

Выключатель-AzureWebsiteSlot также работает для веб-приложения ARM. Моя проблема в том, что у меня есть две подписки, я не выбрал правильную подписку при тестировании команды ранее. Благодаря Флемину!

До:
enter image description here

Теперь с правой подписки:
enter image description here

2

Эта команда работает даже если вы создали приложение в ARM.

Switch-AzureWebsiteSlot -Name 'siteName' -slot1 'StagingDeploymentName' -slot2 'Production' -force -verbose 

Пожалуйста, проверьте имена, которые вы указали, и если слоты запущены и работают.

Я протестировал это, остановив один из слотов развертывания и проделав ту же ошибку, что и вы. Итак, теперь я уверен, что в вашем случае ни один слот не работает.

+0

В самом деле, я обновил свой ответ. – forester123

+0

Отлично [email protected] Я надеюсь, что ваша проблема решена. –

+0

@FleminAdambukulam да, это было решено. Спасибо, ребята :) –

1

Для веб-приложения ARM Switch-AzureWebsiteSlot не работает для меня вообще. Получите следующее сообщение об ошибке:

Switch-AzureWebsiteSlot: подписка по умолчанию не назначена. Используйте Select-AzureSubscription -Default, чтобы установить подписку по умолчанию .

Из чего я понимаю, Select-AzureSubscription - это команда ASM, поэтому она неприменима. (Вместо этого для ARM мне нужно использовать Select-AzureRmSubscription.)

Команда Swap-AzureRmWebAppSlot является то, что работает для меня:

Swap-AzureRmWebAppSlot -Name "sitename" -SourceSlotName "Staging" -DestinationSlotName "Production" -ResourceGroupName "<Your Resource Group Name" 
+0

Я поцарапал себе голову на час, получая то же сообщение об ошибке с нашего сервера сборки, и после применения рекомендации Рэя здесь на нашем этапе выпуска сервера сборки он работал в первый раз. Спасибо Рэй. – jadusty

Смежные вопросы