Asp.net mvc Azure云服务的保留IP地址不工作

Asp.net mvc Azure云服务的保留IP地址不工作,asp.net-mvc,azure,azure-cloud-services,static-ip-address,Asp.net Mvc,Azure,Azure Cloud Services,Static Ip Address,我正在尝试为云服务分配保留的IP地址。我需要此功能来限制对数据库的IP访问(不,我不想允许所有azure节点进行此访问),并且我还必须访问需要静态IP的外部API 到目前为止,我已经创建了一个云服务解决方案,并在该解决方案中添加了一个MVC Web角色。使用Azure Powershell,我获得了一个IP地址(通过使用GetAzureReservedIP验证成功),并更新了配置文件ServiceConfiguration.cloud.cscfg <?xml version="1.0" e

我正在尝试为云服务分配保留的IP地址。我需要此功能来限制对数据库的IP访问(不,我不想允许所有azure节点进行此访问),并且我还必须访问需要静态IP的外部API

到目前为止,我已经创建了一个云服务解决方案,并在该解决方案中添加了一个MVC Web角色。使用Azure Powershell,我获得了一个IP地址(通过使用GetAzureReservedIP验证成功),并更新了配置文件ServiceConfiguration.cloud.cscfg

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="TestApp" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2014-06.2.4">
  <Role name="MvcWebRole">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=XYZ;AccountKey=XYZ" />
    </ConfigurationSettings>
  </Role>
  <NetworkConfiguration>
    <AddressAssignments>
      <ReservedIPs>
        <ReservedIP name="MyReservedIP"/>
      </ReservedIPs>
    </AddressAssignments>
  </NetworkConfiguration>
</ServiceConfiguration>

(显然,我已经确保IP地址的名称与GetAzureReservedIP中显示的完全相同。)

使用此配置,我已将解决方案部署到一个新的云服务,但它没有收到预期的IP地址。 我正在使用Visual Studio 2012和Azure SDK 2.4。我通过选择Build->Publish to Azure从VisualStudio部署到Azure,在这里我创建新的云服务并选择“云”服务配置

编辑
我可以看到IP地址不用于传出流量,因为无法访问数据库(仅允许一个IP地址),并且我对外部Web服务的请求被阻止。管理门户显示使用了另一个IP地址

您是如何确保静态ip未分配给云服务的?希望您在Azure管理门户-云服务-仪表板中观察到云服务的VIP。此外,保留的IP将不会分配给实例。它将仅与云服务关联。

根据我在AZure上的个人使用经验,如果您尝试在云服务上使用vip分配保留IP,它将无法工作。您可以分配给新的云服务或云服务,而无需任何部署(vip尚未分配)

另外,请注意,基于亲和组的云服务上的保留Ip有限制,在这种情况下,您可能会遇到以下问题:

New-AzureVM : BadRequest : The deployment contains VirtualNetwork DemoVNET that belongs to an Affinity Group and ReservedIP that belongs to a region. This combination is not allowed.   

参考:

您需要使用powershell来保留IP。遗憾的是,您目前无法将IP分配给现有的云服务。因此,您必须创建一个新实例

这将指导您如何保留IP

然后,您需要确保您的Azure配置文件(.cscfg)具有以下名称,并在NetworkConfiguration下具有您的ReservedIP名称

 <NetworkConfiguration>
    <AddressAssignments>
      <ReservedIPs>
        <ReservedIP name="Your-Reserved-IP-Name" />
      </ReservedIPs>
    </AddressAssignments>
  </NetworkConfiguration>