5

I'm trying to perform a VIP swap via the azure portal and I'm getting the error:

Windows Azure cannot perform a VIP swap between deployments that have a different number of endpoints.

I looked closer and I DO see difference in # of endpoints (2 in production vs 3 in staging).

Production:

Input Endpoints
OUR.API:168.62.21.50:80 
OUR.API:168.62.21.50:3389

Staging:

Input Endpoints
OUR.API:168.62.22.55:80 
OUR.API:168.62.22.55:3389 
OUR.API:168.62.22.55:8172

Port 80 is web and 3389 is remote desktop. So far so good. Where is that additional port, 8172, coming from? Nothing in the application listens to anything other than port 80. Plus the applications in the staging and production areas are almost identical - so it's gotta be the framework. Any steps in narrowing this down?

[edit] Also, my role's ServiceDefinition.csdef has just one endpoint defined:

 <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
    </Endpoints>
DeepSpace101
  • 13,110
  • 9
  • 77
  • 127

2 Answers2

8

"Where is that additional port, 8172, coming from?"

It is from WebDeploy being enabled in the publishing settings

Long answer:

I parsed the entire configuration one by one between the staging and production, here is what I found:

Your publishing settings are saved to

<azurerole>\Profiles\<yourprofilename>.azurePubxml

My production deployment had <AzureEnableWebDeploy>True</AzureEnableWebDeploy> while my staging deployment had <AzureEnableWebDeploy>False</AzureEnableWebDeploy>

The Azure infrastructure then looks that up and opens port 8172 to enable WebDeploy on the staging roles. So that's why the endpoints are different despite no new endpoint defined in the ServiceDefinition.csdef file.

I'm not sure why having different number of endpoints should prevent an Azure Publication itself.

DeepSpace101
  • 13,110
  • 9
  • 77
  • 127
0

For me the issue was that my PROD instances had RDP enabled and the STAGING did not. So "RDP" was the endpoint that was different.

ProVega
  • 5,864
  • 2
  • 36
  • 34