none
Azure Rest API “创建虚拟机部署” 失败 RRS feed

  • 问题

  • 各位大神们,你们好:

         我是做微软中国azure底层开发的,目前在开发的过程遇到如下问题,描述如下:

         在调用微软Azure Rest API做开发时,我用的语言是c#,调用的是世纪互联提供的azure服务。在开发的过程中对虚拟机执行开机,关机,创建云服务以及其他操作都没有问题。但是在创建虚拟机,尤其是“创建虚拟机部署”的时候,azure中国返回的数据为404,即badrequest错误。使用的   API是微软Azure的“创建虚机部署”,我已经检查程序,没有缺少参数,但是无法动态的创建虚拟机,

    我的访问路径为:
    https://management.core.chinacloudapi.cn/****************/services/hostedservices/test20141201/deployments

    数据格式为:
    <Deployment p1:i="" xmlns:p1="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure">
      <Name>Deployment20141202112330</Name>
      <DeploymentSlot>Production</DeploymentSlot>
      <Label>Label20141202112330</Label>
      <RoleList>
        <Role>
          <RoleName>VM20141202112330</RoleName>
          <RoleType>PersistentVMRole</RoleType>
          <ConfigurationSets>
            <ConfigurationSet p1:type="WindowsProvisioningConfigurationSet">
              <ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>
              <ComputerName>ComName20141202112330</ComputerName>
              <AdminPassword>12345.com</AdminPassword>
              <AdminUsername>lianghui112330</AdminUsername>
            </ConfigurationSet>
          </ConfigurationSets>
          <OSVirtualHardDisk>
            <MediaLink>https://portalvhdsk0scb5t7d0975.blob.core.chinacloudapi.cn/vhds/azure0910-azure0910-2014-11-17.vhd</MediaLink>
            <SourceImageName>55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-Datacenter-201410.01-en.us-127GB.vhd</SourceImageName>
          </OSVirtualHardDisk>
        </Role>
      </RoleList>
    </Deployment>







    2014年12月1日 12:39

答案

  • 问题已经解决,在代码里面添加如下代码:

    statusCode = response.StatusCode;
    if (response.ContentLength > 0)
    {
    using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
    {
    responseBody = XDocument.Load(reader);
    }
    }

    此代码的功能是获取世纪互联返回的异常原因,而不是获取一个BadRequest,我建立的VM虚拟机名称超过16个字符了。


    2014年12月3日 1:31

全部回复

  • 您好 梁山伯,

    首先,感谢您对Mooncake Azure的支持!其次在论坛中,我们不建议公开个人的隐私信息,以免造成安全隐患,我们将您提供的个人信息已经屏蔽掉。

    再次,对于您的问题,我会尽快尝试去重现和确认,之后会尽快给您回复,感谢您的理解!

    Best Regards,
    Will


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年12月2日 2:20
    版主
  • 好的,谢谢你
    2014年12月2日 3:28
  • 我的访问路径为:
    https://management.core.chinacloudapi.cn/***************/services/hostedservices/test20141201/deployments
    2014年12月2日 3:29
  • 我的数据格式为:

    <Deployment p1:i="" xmlns:p1="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/windowsazure">
      <Name>Deployment20141202112330</Name>
      <DeploymentSlot>Production</DeploymentSlot>
      <Label>Label20141202112330</Label>
      <RoleList>
        <Role>
          <RoleName>VM20141202112330</RoleName>
          <RoleType>PersistentVMRole</RoleType>
          <ConfigurationSets>
            <ConfigurationSet p1:type="WindowsProvisioningConfigurationSet">
              <ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>
              <ComputerName>ComName20141202112330</ComputerName>
              <AdminPassword>12345.com</AdminPassword>
              <AdminUsername>lianghui112330</AdminUsername>
            </ConfigurationSet>
          </ConfigurationSets>
          <OSVirtualHardDisk>
            <MediaLink>https://portalvhdsk0scb5t7d0975.blob.core.chinacloudapi.cn/vhds/azure0910-azure0910-2014-11-17.vhd</MediaLink>
            <SourceImageName>55bc2b193643443bb879a78bda516fc8__Windows-Server-2012-Datacenter-201410.01-en.us-127GB.vhd</SourceImageName>
          </OSVirtualHardDisk>
        </Role>
      </RoleList>
    </Deployment>

    2014年12月2日 3:30
  • Hi 梁山伯,

    404 badrequest的错误有可能是您证书的错误,也有可能是请求过程中格式或者参数出错:

    首先,需要和您确认下,您的request body中的数据格式

    p1:i="" xmlns:p1="

    是复制过来的错误还是本来使用的就是这个?

    请看这篇文档:http://msdn.microsoft.com/en-us/library/azure/jj157194.aspx

    其中的命名应为:

     xmlns:i=
    <ConfigurationSet i:type="WindowsProvisioningConfigurationSet">
    

    您可以先确认下。

    Regards,

    Will


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年12月2日 13:28
    版主
  • 问题已经解决,在代码里面添加如下代码:

    statusCode = response.StatusCode;
    if (response.ContentLength > 0)
    {
    using (XmlReader reader = XmlReader.Create(response.GetResponseStream()))
    {
    responseBody = XDocument.Load(reader);
    }
    }

    此代码的功能是获取世纪互联返回的异常原因,而不是获取一个BadRequest,我建立的VM虚拟机名称超过16个字符了。


    2014年12月3日 1:31