allow specific IP address to be assigned to Azure compute emulator deployments
When using csrun from the command-line (or from the project properties in Visual Studio), it should be possible to assign a specific VIP address to use for Azure Compute emulator deployments. This is important when you have multiple cloud services you are testing locally at once and want them to be able to talk to each other (or where they need to be subdomains of a common domain for authentication purposes). Right now, I use csrun /status in the WebRole startup method and update the local hosts file, but this causes issues in the browser when they IP addresses get changed around (and browser has old IP addresses cached). One workaround is to always start the services in the same order, but this makes debugging and working with locally emulated cloud services unnecessarily tedious.
Thanks, Caleb. Let’s see if we see a few more votes on this one.
Trent Devers commented
I currently run 3 Cloud Services as well as multiple web apps. When trying to debug the solution, it is a constant hassle updating the hosts file and running ipconfig /flushdns to ensure communication works between the services.
Why not add the ability to specify a address/port combo within the csdef or cscfg files for use with the emulator?
Even for us it would be useful. We are working in similar environments like Anonymous and Richard.
Richard Pickett commented
Yes this would be very useful to us. We have a dozen web/worker roles, all in separate cloud services. When we select the ones we want and run them, they all attempt to use the same port (worker roles on port 443). We bind to the port with OWIN during startup but since it is after the compute emulator has assigned ports, the first will be successful and the rest will fail. I think the compute emulator needs to me aware of HTTP/S endpoints even in worker roles and apply the same VIP logic that it does for web roles. Ideally this would be configurable from Visual Studio too so I can just click Debug and everything runs on preconfigured/predictable VIPs.
This is an excellent feature request in my opinion I have a system of currently 6 interdependent services that I deploy in a specific order so that the IP addresses are consistent, and it would be much nicer to somehow bind an IP in the CSRun command if it is available, similar to how ports are handled.