Make IIS Express Listen on Your Hostname

Getting IIS Express to listen on your machine’s hostname (or hostnames) and not just localhost can be pretty handy.  From a high-level there are 3 basic steps:

  1. Change IIS Express Configuration for the Visual Studio Solution
  2. Tell http.sys to respond to requests from everyone
  3. Open the local firewall to incoming port 443

Change IIS Express Configuration for the Visual Studio Solution

Open the solution-specific configuration file.  If you’re using Visual Studio 2015 then it can be found in the following folder:

<solution-dir>\.vs\config\applicationhost.config

If you can’t see the .vs folder then make sure you can view hidden files in Explorer – (.vs is a hidden folder).

Look for the lines with the element <binding> that are specific to the site / project you are editing.  Change the <binding> element entries to be:

<binding protocol="http" bindingInformation=":52646:" />
<binding protocol="https" bindingInformation=":44394:" />
<binding protocol="https" bindingInformation=":443:" />

(The primary change is the removal of the ‘localhost’ or ‘*’ in the part of bindingInformation that specifies the hostname of the listening endpoint.)

Tell http.sys to respond to requests from everyone

This step is a simple netsh command.  Make sure to change the port according to the settings in your project, I’m using 443 as an example.

netsh http add urlacl url=https://*:443/ user=everyone

If you get an error about the file already existing then you may want to run the following and then re-rerun the netsh http add command:

netsh http delete urlacl url=https://*:443/

Open the local firewall to incoming port 443

Again, a simple netsh command.

netsh advfirewall firewall add rule name="Open Port 443" dir=in action=allow protocol=TCP localport=443

After that you should be good to go.  Open a browser and navigate to your site using your hostname and port number.

Leave a comment