部署失败 - vmsize的InstanceSize枚举值无效

时间:2015-04-17 22:10:44

标签: azure tfs azure-devops

我们的代码位于Visual Studio Online TFS存储库中, 我们构建并部署到Azure。我们使用托管构建控制器Build DefinitionTfvcContinuousDeploymentTemplate.12.xaml 构建流程模板,配置为部署到我们的Windows Azure部署环境。

在我们将Azure云服务VM从升级到Standard_D1之前,一切正常。 我们在ServiceDefinition.csdef中对WebRole进行了适当的更改:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="PriceCalv3CS" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
  <WebRole name="PriceCalv3CS.SPA" vmsize="Standard_D1">
    ...
  </WebRole>
</ServiceDefinition>

如果我们从本地Visual Studio 2013发布和部署,而且不是从Visual Studio Online发布和部署,一切仍然正常。

VSO成功编译解决方案,但在尝试部署时抛出此异常:

Exception Message: Invalid enum value 'Standard_D1' cannot be deserialized into type 'Microsoft.TeamFoundation.Deployment.Workflow.AzureManagement.v1_7.InstanceSize'. Ensure that the necessary enum values are present and are marked with EnumMemberAttribute attribute if the type has DataContractAttribute attribute. (type SerializationException)
Exception Stack Trace:    at System.Runtime.Serialization.EnumDataContract.ReadEnumValue(String value, Int32 index, Int32 count)
   at System.Runtime.Serialization.EnumDataContract.ReadEnumValue(XmlReaderDelegator reader)
   at System.Runtime.Serialization.EnumDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context)
   ...

似乎VSO无法处理Azure现在支持的新(ish)实例大小名称 我们正在使用Microsoft Azure SDK for .NET (VS 2013) - 2.5.0, 并尝试升级到最新的2.5.1,但这对VSO没有帮助。

我见过这个问题的其他参考文献在social.msdn 那里有bug opened被关闭而没有解决方案。

similar error的人能够通过删除旧版本来解决此问题, 但这对我不起作用。我尝试创建一个全新的Build Definition,但这也无济于事。

似乎我们需要告诉VSO尊重这些新的实例大小。但是如何?


更多:我认为VSO正在解析ServiceDefinition.csdef,并在vmsize="Standard_D1"上窒息,但事实并非如此。我将其更改为vmsize="Small"甚至vmsize="broken",错误消息仍然抱怨“枚举值无效'Standard_D1'”。

1 个答案:

答案 0 :(得分:0)

如果您之前的实例小于d1,那么您的部署位于不支持D1的数据中心。

如果是这种情况,那么您需要删除当前部署,包括vm和资源组。然后,当您以D1进行新部署时,您的实例将最终进入正确的数据中心。