При использовании нижеприведенных методов для выключения и запроса экземпляров роли. Когда я завершаю работу виртуальной машины, все другие экземпляры роли возвращаются с неизвестным статусом готовности. Примерно через пару минут я могу запросить еще раз и получить фактический статус. Как я могу получить фактический статус в режиме реального времени, используя API управления Azure. Или это проблема с настройкой виртуальных машин? Они настраиваются с таким же адресом хранения и той же виртуальной сетиВыключение VM возвращает все состояния VM как неизвестные
Код, показанный базировалась от шаблона для развертывания и управления виртуальными машинами в Visual Studio 2015
Призыв к остановке ВМ:
var shutdownParams = new VirtualMachineShutdownParameters();
if (deallocate)//deallocate is true in this instance
shutdownParams.PostShutdownAction = PostShutdownAction.StoppedDeallocated; // Fully deallocate resources and stop billing
else
shutdownParams.PostShutdownAction = PostShutdownAction.Stopped; // Just put the machine in stopped state, keeping resources allocated
await _computeManagementClient.VirtualMachines.ShutdownAsync(_parameters.CloudServiceName, _parameters.CloudServiceName, vmName, shutdownParams);
вызов запроса для всех экземпляров роли XXX_VirtualMachine
это класс, который содержит имя и статус экземпляра:
internal List<XXX_VirtualMachine> GetAllVirtualMachines()
{
List<XXX_VirtualMachine> vmList = new List<XXX_VirtualMachine>();
try
{
DeploymentGetResponse deployment;
deployment = _computeManagementClient.Deployments.GetByName(_parameters.CloudServiceName, _parameters.CloudServiceName);
for (int i = 0; i < deployment.RoleInstances.Count; i++)
{
vmList.Add(new XXX_VirtualMachine(deployment.RoleInstances[i].InstanceName, deployment.RoleInstances[i]));
}
}
catch (Exception e)
{
System.Windows.Forms.MessageBox.Show(e.Message);
}
return vmList;
}
Этот вопрос меня интриговал, но у меня не так много времени, чтобы исследовать его! Не могли бы вы добавить небольшое консольное приложение, которое показывает, что вы видите (что-то я могу зайти в VS и посмотреть, когда у меня есть час). Я не могу обещать, что найду что-нибудь! но вы никогда не знаете –
Я мог бы добавить приложение вместе, но не могу предоставить вам доступ к моим машинам Azure и сертификату управления. Я могу создать оболочку, в которой вы укажете имя облачной службы и путь к сертификату, чтобы проверить, есть ли у вас учетная запись Azure. Приносим извинения, но моя команда по вопросам безопасности будет со мной, если я это сделаю. – Sorceri
Это нормально, у меня есть учетные записи и тестовые среды, с которыми я могу работать, просто не время, чтобы вытащить код вместе, я надеялся, что кто-то еще это выяснит! Но так как они у меня не получится! –