Blend's Director of Development Bob Davidson explains how to navigate IIS Express in order to bind multiple Episerver sites and languages in this Coding with Bob video.
Many developers prefer IIS Express for local development over using the full IIS install. I am among them, for several reasons:
- Episerver running in IIS Express and answering to the
localhost
domain does not require a license. Demo licenses are free to partners, but mildly annoying manage. - To debug in full IIS, you must run Visual Studio as Administrator. It may just be my setup, but this seems to be a frequent cause of problems for me. Running as the current user, however, is very stable.
- Because the IIS worker process is running as the current user, I can use a Trusted Connection to my SQL Server connections. That's one fewer password to concern myself with.
But IIS Express comes with one glaring downside:
- You can only use
localhost
as the domain.
This appears to be particularly problematic for Episerver, as Episerver distinguishes different tenants and (optionally) different languages by domain. Fortunately, that's not 100% accurate. Episerver distinguishes these by authority.
The difference here is that a domain is just the name (localhost
, or www.google.com
for example), but authority is the domain and the port (localhost:44316
, www.google.com:443
for example).
In IIS Express, we can only bind to the localhost
domain, but we can bind to any number of ports. By leveraging both, we can create unique authorities (domain and port), and thus bind multiple Episerver sites and languages with IIS Express.
Doing this is not difficult. Here's a video that goes through in more detail.