Using a custom hostname with IIS Express and Visual Studio 2015 (VS2015)

By default, IIS Express has made it difficult to use custom hostnames when developing locally, as you have had to edit a machine-level file applicationhost.config. In VS2015, this has been moved into $(solutionDir)\.vs\config\applicationhost.config which makes it much easier to work against, and to share with other members of your team.

Here are the steps to enabling a custom hostname.

0. Prerequisites

You should have a VS2015 solution containing a web application which opens on IIS Express, on a localhost port (e.g. MyWebApp on localhost:12345)

1 - Edit your applicationhost.config

Open the file $(solutionDir)\.vs\config\applicationhost.config in a text editor. I like to add it as a Solution Item using "Add Existing Item" in VS.

Find the text that looks something like

<site name="MyWebApp" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="..." />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

We need to change the binding element to use the custom hostname. I'm using mywebapp.127.0.0.1.xip.io as my custom hostname. xip.io is a dynamic DNS server which points to whatever IP address you embed into the hostname, in this case 127.0.0.1. This stops you having to faff around with local hosts file entries. Here's the updated element:

     <bindings>
          <binding protocol="http" bindingInformation="*:80:mywebapp.127.0.0.1.xip.io" />
     </bindings>

2 - Update the project settings in Visual Studio.

3 - Run the project

F5. Voila!