By default, IIS Express only allows binds to localhost on a dynamically configured port. If you would like to have IIS Express bind to anything other than local host (say for things like testing an API service from a mobile device) you’ll have to modify the IIS Express config file. If you look in the following location “C:\Users[USER]\Documents\IISExpress\config” you will see a file named applicationhost.config. This is the file you need to modify. If you open the file applicationhost.config in your favorite editor and look for the specific site you want to enable IP http access on. It’ll look something like the following, you’ll have for your specific site but it should be listed in the sites XML element.

<site id="7" name="MyApiSite">
	<application applicationpool="Clr4IntegratedAppPool" path="/">
        	<virtualdirectory path="/" physicalpath="C:DevMyApiSite" />
        </application>
	<bindings>
		<binding bindinginformation="*:54364:localhost" protocol="http" />
	</bindings>
</site>

Once you find your specific site, you’re going to want to change the “" element line and remove the "localhost" item from the line. Check out the adjusted line hilighted below!

<site id="7" name="MyApiSite">
	<application applicationpool="Clr4IntegratedAppPool" path="/">
		<virtualdirectory path="/" physicalpath="C:DevMyApiSite" />
	</application>
	<bindings>
		<binding bindinginformation="*:54364:" protocol="http" />
	</bindings>
</site>

Now you have a IIS Express site that you can access (via IP) from any device, not just local host!