An ARR tip: how to add multiple servers that are in fact the same

I've noticed that some customers use Application Request Routing (ARR) to load balance between multiple sites that run on the same Windows/IIS instance.   For example, ARR may be listening on port 80, and it load balances the requests between 3 sites that listen on port 8080, 8081 and 8082 on the same ARR server.

This is certainly a supported scenario, but if you tried this, you may have seen the following error:

In above case, it is because I have already added localhost:8080 to the server farm and I am now trying to add the second server, localhost:8081.   This is because ARR, more accurately Web Farm Framework, determines the "uniqueness" of a server by the server name (or an alias) without the port.   So in this case, I am trying to add "localhost" second time.

How do we get around this?

The server address in Web Farm Framework is really nothing more than an alias.   So given a server, a server name, a fully qualified domain name (FQDN), an IPv4 and an IPv6 are 4 different aliases.   And if you tried to enter the same Windows/IIS instance using different aliases, Web Farm Framework will treat them as unique servers.  

Going back to the example above, I would actually recommend adding aliases for the loopback adapter, 127.0.0.1, in the host file (c:\windows\system32\drivers\etc\hosts):

127.0.0.1     mysite0
127.0.0.1     mysite1
127.0.0.1     mysite2

Once I do that, now I can reference the 3 sites as mysite0:8080, mysite1:8081 and mysite2:8082, like so:

Thanks for using ARR and please continue to provide feedback via the ARR form at http://forums.iis.net/1154.aspx.

1 Comment

  • IIS as a reverse proxy with SSL termination. The forwarding/rewriting has to be again SSL with a client certificate only present on the reverse proxy and not on the requesting client. Can it be done??

Comments have been disabled for this content.