I created an Azure Reserved IP using Azure Powershell and assigned it to a cloudservice (Web Role + Worker Role) using the configuration section in the ServiceConfigurationCloud.cscfg file
<NetworkConfiguration>
<AddressAssignments>
<ReservedIPs>
<ReservedIPname="MyWebSiteIP"/>
</ReservedIPs>
</AddressAssignments>
</NetworkConfiguration>
and publishing the project directly in the Production environment. So far so good.
Usually when I need to update a cloud service I publish the new version in the Staging environment, check that everything is ok, then swap Production/Staging environments and finally delete the staging environment.
Apparently with the reserved IP I cannot use the staging environment anymore: I removed the <NetworkConfiguration> section from the configuration file (of course if you leave it you get an error because the IP is already in use), but when I publish in the staging environment (of the same deployment) the operation fails during service creation with a cryptic "The server encountered an internal error. Please retry the request."
On the other side the update operation works fine (publish a new version directly to the production environment).
Carlo