When you run your web role (ASP.NET Web site) in compute emulator (development fabric), you will see following things happens in your machine while running your website:

 

  • A listener is created  so you can access your site at http://127.0.0.1:81 (Port and IP address could change for multiple roles and instances)
  • Looking into IIS you will see the web site has a binding to some arbitrary port number (mostly 5121 or some port number closer to it).
  • In compute emulator, emulated load balancer listens on your web site port (in this case #81)  and forwards traffic to all instances in your web role
  • Emulated load balancer forwards all the requests to your web site binding port number (in this case 5121).
  • Compute emulator is configured to only listen on loopback.
  • Because compute emulator is configured to only listen loopback address, requests from a different host could not being forwarded.
  • Means, if you create an arbitrary DNS name in your hosts file that maps to your loopback address, you wouldn’t be able to hit your site on port 81.
  • To solve above behavior, you can use a port forwarder.