0
votes

I have two web roles within a cloud service, one to expose outside and one for internal use. The external web role has an MVC web application which will have to connect to the internal web role which will have a Web API. I have the below service definition for my Azure Cloud service.

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="AzureWeb_ExternalCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WebRole name="ExternalWebApplication" vmsize="A6">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
      <Setting name="ServiceBaseURL" />
    </ConfigurationSettings>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
  </WebRole>
  <WebRole name="InternalWebAPI" vmsize="Small">
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint2" endpointName="Endpoint2" />
        </Bindings>
      </Site>
    </Sites>
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
    </ConfigurationSettings>
    <Endpoints>
      <InternalEndpoint name="Endpoint2" protocol="http" port="8080" />
    </Endpoints>
  </WebRole>
  <NetworkTrafficRules>
    <OnlyAllowTrafficTo>
      <Destinations>
        <RoleEndpoint roleName="InternalWebAPI" endpointName="Endpoint2"/>
      </Destinations>      
      <WhenSource matches="AnyRule">
        <FromRole roleName="ExternalWebApplication"/>
      </WhenSource>     
      <AllowAllTraffic/>          
    </OnlyAllowTrafficTo>
  </NetworkTrafficRules>
</ServiceDefinition>

However, I get the below error when I try to build.

The XML specification is not valid: The element 'OnlyAllowTrafficTo' in namespace 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition' has invalid child element 'AllowAllTraffic' in namespace 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition'

1

1 Answers

0
votes

According to the ServiceDefinitionSchema (mine is located at %ProgramFiles%\Microsoft SDKs\Azure.NET SDK\v2.8\schemas), the AllowAllTraffic element must precede the WhenSource element.