为什么我不能在我的ServiceDefinition文件中输入LoadBalancerProbe?

时间:2012-12-17 17:25:00

标签: azure load-balancing

我试图为我的Azure服务设置一个CustomLoadBalancerProbe。

根据此信息:http://msdn.microsoft.com/en-us/library/windowsazure/jj151530.aspx#LoadBalancerProbes

应该可以将标记添加到服务定义文件中。 但是当我尝试这个时,我只收到一条消息,说这对于servicedefinition文件是无效的。

然后我用Google搜索了一下,发现了这个:http://www.windowsazure.com/en-us/manage/windows/common-tasks/how-to-load-balance-virtual-machines/

这里它告诉我虚拟机的负载平衡仅在azure的预览版本中可用。

所以我现在有点困惑:

1)VM的负载平衡与架构中描述的负载均衡探针的使用有区别吗? (链接1)

2)如果否:是否只是不支持?

3)如果是:为什么我无法将探针输入服务定义文件?

1 个答案:

答案 0 :(得分:8)

只有SDK的1.7版(或更高版本)支持LoadBalancerProbes元素。现在,它的棘手部分是你需要在定义Web / Worker角色之前添加它。像这样:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure6" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <LoadBalancerProbes>
    <LoadBalancerProbe name="MyProbe" protocol="http" intervalInSeconds="300" path="/something.aspx" port="80" timeoutInSeconds="30" />
  </LoadBalancerProbes>
  <WebRole name="WebRole1" vmsize="Small">
    ...
  </WebRole>
</ServiceDefinition>

如果在定义Web / Worker角色后添加它,则Visual Studio中会出现“无效的子元素”错误:

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="WindowsAzure6" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
  <WebRole name="WebRole1" vmsize="Small">
    ...
  </WebRole>
  <LoadBalancerProbes>
    <LoadBalancerProbe name="MyProbe" protocol="http" intervalInSeconds="300" path="/something.aspx" port="80" timeoutInSeconds="30" />
  </LoadBalancerProbes>
</ServiceDefinition>