I have a test ASP.NET MVC3 application developed in VS2012. When I start debugging the app is accessed from the host machine via the request to http://localhost:<portnumber>
. But if I try to access the same application from the remote machine in the intranet via the http://<ip>:<portnumber>
I get HTTP error 400: Bad request. Invalid Host Name.
As far as it runs on IIS Express any server configuration is inaccessible.
Are there any ways of solving this?
Update
I made a video that better describes the process, https://youtu.be/5ZqDuvTqQVs
If you are using Visual Studio 2013 or above, make sure you run it as an administrator for this to work.
%USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
(in VS2015 it may be $(solutionDir)\.vs\config\applicationhost.config
) file. Inside you should see something like this:
<site name="WebSite1" id="1" serverAutoStart="true">
<application path="/">
<virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8080:localhost" />
</bindings>
</site>
Change the bindingInformation=":8080:localhost"
to bindingInformation="*:8080:*"
(the port number, 8080 in my case, will differ.)
Note: If it does not work try with bindingInformation="*:8080:
the asterix can be removed.
Then make sure your firewall is allowing incoming connections on that port. You may need to restart the system or at least Visual Studio to get IISExpress to reload the config file.
If this doesn't work, take a look at this answer: https://stackoverflow.com/a/5186680/985284