【问题标题】:Deploy fails - Invalid InstanceSize enum value for vmsize部署失败 - vmsize 的 InstanceSize 枚举值无效
【发布时间】:2015-04-23 06:34:58
【问题描述】:

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

在我们将 Azure 云服务 VM 从 Small 升级到 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 的人能够通过删除他们的旧版本来解决它, 但这对我不起作用。我尝试创建一个全新的构建定义,但这也无济于事。

似乎我们需要告诉 VSO 尊重这些新的实例大小。但是怎么做呢?


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

【问题讨论】:

    标签: azure tfs azure-devops


    【解决方案1】:

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

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

    【讨论】:

    • 我们已经这样做了。而且,如上所述,我们能够从桌面上的 VS 成功部署。我们只能从 Visual Studio Online 中得到错误。所以我认为这不是问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 1970-01-01
    • 2020-03-27
    相关资源
    最近更新 更多